Routines for playback devices

ABSTRACT

In response to receiving the playback mode indication, a playback device is caused to operate within a particular playback mode. After initiating operation of the particular playback mode, the playback device accesses a particular set of routines that is associated with the particular playback mode. The particular set of routines are configured to cause the playback device to play back particular media content with a particular user-defined acoustic parameter, and to configure the playback device to advance between one or more routines within the particular set of routines in response to one or more user interface interactions. The playback device receives the one or more user interface interactions at a user interface associated with the playback device. After receiving the one or more user interface interactions, the playback device executes at least one routine selected from the particular set of routines.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and priority to U.S. ProvisionalPatent Application Ser. No. 63/261,822 filed on Sep. 29, 2021, andentitled “ROUTINES FOR PLAYBACK DEVICES,” which application is expresslyincorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure is related to consumer goods and, moreparticularly, to methods, systems, products, features, services, andother elements directed to media playback or some aspect thereof.

BACKGROUND

Options for accessing and listening to digital audio in an out-loudsetting were limited until in 2002, when SONOS, Inc. began developmentof a new type of playback system. Sonos then filed one of its firstpatent applications in 2003, entitled “Method for Synchronizing AudioPlayback between Multiple Networked Devices,” and began offering itsfirst media playback systems for sale in 2005. The Sonos Wireless HomeSound System enables people to experience music from many sources viaone or more networked playback devices. Through a software controlapplication installed on a controller (e.g., smartphone, tablet,computer, voice input device), one can play what she wants in any roomhaving a networked playback device. Media content (e.g., songs,podcasts, video sound) can be streamed to playback devices such thateach room with a playback device can play back corresponding differentmedia content. In addition, rooms can be grouped together forsynchronous playback of the same media content, and/or the same mediacontent can be heard in all rooms synchronously.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologymay be better understood with regard to the following description,appended claims, and accompanying drawings, as listed below. A personskilled in the relevant art will understand that the features shown inthe drawings are for purposes of illustrations, and variations,including different and/or additional features and arrangements thereof,are possible.

FIG. 1A is a partial cutaway view of an environment having a mediaplayback system configured in accordance with aspects of the disclosedtechnology.

FIG. 1B is a schematic diagram of the media playback system of FIG. 1Aand one or more networks.

FIG. 1C is a block diagram of a playback device.

FIG. 1D is a block diagram of a playback device.

FIG. 1E is a block diagram of a network microphone device.

FIG. 1F is a block diagram of a network microphone device.

FIG. 1G is a block diagram of a playback device.

FIG. 1H is a partial schematic diagram of a control device.

FIGS. 1I through 1L are schematic diagrams of corresponding mediaplayback system zones.

FIG. 1M is a schematic diagram of media playback system areas.

FIG. 2A is a front isometric view of a playback device configured inaccordance with aspects of the disclosed technology.

FIG. 2B is a front isometric view of the playback device of FIG. 3Awithout a grille.

FIG. 2C is an exploded view of the playback device of FIG. 2A.

FIG. 3A is a front view of a network microphone device configured inaccordance with aspects of the disclosed technology.

FIG. 3B is a side isometric view of the network microphone device ofFIG. 3A.

FIG. 3C is an exploded view of the network microphone device of FIGS. 3Aand 3B.

FIG. 3D is an enlarged view of a portion of FIG. 3B.

FIG. 3E is a block diagram of the network microphone device of FIGS.3A-3D

FIG. 3F is a schematic diagram of an example voice input.

FIGS. 4A-4D are schematic diagrams of a control device in various stagesof operation in accordance with aspects of the disclosed technology.

FIG. 5 is front view of a control device.

FIG. 6 is a message flow diagram of a media playback system.

FIG. 7 is a schematic of a timeline associated with a playback device inaccordance with aspects of the disclosed technology.

FIGS. 8A and 8B are schematic diagrams of a user interface of a playbackdevice configured in accordance with aspects of the disclosedtechnology.

FIGS. 9A and 9B are schematic diagrams of a user interface of a controldevice configured in accordance with aspects of the disclosedtechnology.

FIGS. 10A and 10B are schematic diagrams of a user interface of acontrol device configured in accordance with aspects of the disclosedtechnology.

FIGS. 11A and 11B are schematic diagrams of a user interface of acontrol device configured in accordance with aspects of the disclosedtechnology.

FIGS. 12A and 12B are schematic diagrams of a user interface of acontrol device configured in accordance with aspects of the disclosedtechnology.

FIGS. 13A and 13B are schematic diagrams of a user interface of acontrol device configured in accordance with aspects of the disclosedtechnology.

FIG. 14 is a schematic diagram of a user interface of a control deviceconfigured in accordance with aspects of the disclosed technology.

FIGS. 15A and 15B are schematic diagrams of a user interface of acontrol device configured in accordance with aspects of the disclosedtechnology.

FIG. 16 is schematic diagram of media playback system in communicationwith cloud services.

FIGS. 17A-17C are message flow diagrams of a media playback system incommunication with cloud services.

FIG. 18 shows a schematic diagram of a media playback system. incommunication with cloud services

FIG. 19 shows a flow diagram for operating a playback device within aplayback mode.

FIG. 20 shows a flow diagram for configuring a playback mode at acontrol device.

The drawings are for the purpose of illustrating example embodiments,but those of ordinary skill in the art will understand that thetechnology disclosed herein is not limited to the arrangements and/orinstrumentality shown in the drawings.

DETAILED DESCRIPTION I. Overview

Embodiments described herein relate to the execution of routines forcontrolling one or more playback devices. A particular set of routinesmay be used to define an operating mode of the one or more playbackdevices. The operating mode may be associated with a trigger conditionthat when met causes the one or more playback devices to behave in a waythat is defined by the particular set of routines.

The routines may be executed or encoded at a playback device, at acontrol device, at a server, at another device, or at any combinationthereof. Further, the routines may be partially encoded prior to beingsent to the one or more playback devices for final execution. Theroutines may cause one or more playback devices to collaborativelyperform a function. When the routines utilize multiple playback devices,the multiple playback devices may perform the exact same functions ormay perform different functions.

In some embodiments, for example, a playback device comprises acommunication interface, at least one processor; and at least onenon-transitory computer-readable medium comprising program instructionsthat are executable by the at least one processor such that the playbackdevice is configured to perform one or more acts. For example, afterreceiving an operating mode indication, the program instructions causethe playback device to operate within a particular operating mode thatis selected from a plurality of operating modes. Each operating modewithin the plurality of operating modes causes the playback device tooperate in a different configuration. The program instructions cause theplayback device to access a particular set of routines that isassociated with the particular operating mode. The particular set ofroutines comprise one or more routines that cause the playback device toplay one or more audio files in a particular manner. Additionally, theparticular set of routines comprise one or more user interfaceinteractions configured to cause the playback device to advance betweenthe one or more routines within the particular set of routines.Additionally, the program instructions cause the playback device to mapthe one or more user interface interactions to a user interfaceassociated with the playback device. Further the program instructionscause the playback device to execute at least one routine selected fromthe one or more routines.

Additionally, in some embodiments a control device comprises acommunication interface, at least one processor, and at least onenon-transitory computer-readable medium comprising program instructionsthat are executable by the at least one processor such that the playbackdevice is configured to perform one or more acts. For example, theprogram instructions cause the control device to receive through theconfiguration interface a user input associating a particular routinewith a particular playback device. The particular routine comprisesinstructions that are configured to cause the particular playback deviceto play one or more audio files. Additionally, the particular routinecomprises one or more audio variables that configure the particularplayback device to play the one or more audio files in a particularmanner. The program instructions also cause the control device toassociate a particular trigger condition with the particular routine.The particular trigger condition comprises a condition that causes theparticular routine to be executed. Further, the computer instructionscause the control device to transmit the particular routine to a server.

While some examples described herein may refer to functions performed bygiven actors such as “users,” “listeners,” and/or other entities, itshould be understood that this is for purposes of explanation only. Theclaims should not be interpreted to require action by any such exampleactor unless explicitly required by the language of the claimsthemselves.

In the Figures, identical reference numbers identify generally similar,and/or identical, elements. To facilitate the discussion of anyparticular element, the most significant digit or digits of a referencenumber refers to the Figure in which that element is first introduced.For example, element 110 a is first introduced and discussed withreference to FIG. 1A. Many of the details, dimensions, angles, and otherfeatures shown in the Figures are merely illustrative of particularembodiments of the disclosed technology. Accordingly, other embodimentscan have other details, dimensions, angles and features withoutdeparting from the spirit or scope of the disclosure. In addition, thoseof ordinary skill in the art will appreciate that further embodiments ofthe various disclosed technologies can be practiced without several ofthe details described below.

II. Suitable Operating Environment

FIG. 1A is a partial cutaway view of a media playback system 100distributed in an environment 101 (e.g., a house). The media playbacksystem 100 comprises one or more playback devices 110 (identifiedindividually as playback devices 110 a-n), one or more networkmicrophone devices 120 (“NMDs”) (identified individually as NMDs 120a-c), and one or more control devices 130 (identified individually ascontrol devices 130 a and 130 b).

As used herein the term “playback device” can generally refer to anetwork device configured to receive, process, and output data of amedia playback system. For example, a playback device can be a networkdevice that receives and processes audio content. In some embodiments, aplayback device includes one or more transducers or speakers powered byone or more amplifiers. In other embodiments, however, a playback deviceincludes one of (or neither of) the speaker and the amplifier. Forinstance, a playback device can comprise one or more amplifiersconfigured to drive one or more speakers external to the playback devicevia a corresponding wire or cable.

Moreover, as used herein the term “NMD” (i.e., a “network microphonedevice”) can generally refer to a network device that is configured foraudio detection. In some embodiments, an NMD is a stand-alone deviceconfigured primarily for audio detection. In other embodiments, an NMDis incorporated into a playback device (or vice versa).

The term “control device” can generally refer to a network deviceconfigured to perform functions relevant to facilitating user access,control, and/or configuration of the media playback system 100.

Each of the playback devices 110 is configured to receive audio signalsor data from one or more media sources (e.g., one or more remoteservers, one or more local devices) and play back the received audiosignals or data as sound. The one or more NMDs 120 are configured toreceive spoken word commands, and the one or more control devices 130are configured to receive user input. In response to the received spokenword commands and/or user input, the media playback system 100 can playback audio via one or more of the playback devices 110. In certainembodiments, the playback devices 110 are configured to commenceplayback of media content in response to a trigger. For instance, one ormore of the playback devices 110 can be configured to play back amorning playlist upon detection of an associated trigger condition(e.g., presence of a user in a kitchen, detection of a coffee machineoperation). In some embodiments, for example, the media playback system100 is configured to play back audio from a first playback device (e.g.,the playback device 100 a) in synchrony with a second playback device(e.g., the playback device 100 b). Interactions between the playbackdevices 110, NMDs 120, and/or control devices 130 of the media playbacksystem 100 configured in accordance with the various embodiments of thedisclosure are described in greater detail below with respect to FIGS.1B-6 .

In the illustrated embodiment of FIG. 1A, the environment 101 comprisesa household having several rooms, spaces, and/or playback zones,including (clockwise from upper left) a master bathroom 101 a, a masterbedroom 101 b, a second bedroom 101 c, a family room or den 101 d, anoffice 101 e, a living room 101 f, a dining room 101 g, a kitchen 101 h,and an outdoor patio 101 i. While certain embodiments and examples aredescribed below in the context of a home environment, the technologiesdescribed herein may be implemented in other types of environments. Insome embodiments, for example, the media playback system 100 can beimplemented in one or more commercial settings (e.g., a restaurant,mall, airport, hotel, a retail or other store), one or more vehicles(e.g., a sports utility vehicle, bus, car, a ship, a boat, an airplane),multiple environments (e.g., a combination of home and vehicleenvironments), and/or another suitable environment where multi-zoneaudio may be desirable.

The media playback system 100 can comprise one or more playback zones,some of which may correspond to the rooms in the environment 101. Themedia playback system 100 can be established with one or more playbackzones, after which additional zones may be added, or removed, to form,for example, the configuration shown in FIG. 1A. Each zone may be givena name according to a different room or space such as the office 101 e,master bathroom 101 a, master bedroom 101 b, the second bedroom 101 c,kitchen 101 h, dining room 101 g, living room 101 f, and/or the balcony101 i. In some aspects, a single playback zone may include multiplerooms or spaces. In certain aspects, a single room or space may includemultiple playback zones.

In the illustrated embodiment of FIG. 1A, the master bathroom 101 a, thesecond bedroom 101 c, the office 101 e, the living room 101 f, thedining room 101 g, the kitchen 101 h, and the outdoor patio 101 i eachinclude one playback device 110, and the master bedroom 101 b and theden 101 d include a plurality of playback devices 110. In the masterbedroom 101 b, the playback devices 110 l and 110 m may be configured,for example, to play back audio content in synchrony as individual onesof playback devices 110, as a bonded playback zone, as a consolidatedplayback device, and/or any combination thereof. Similarly, in the den101 d, the playback devices 110 h-j can be configured, for instance, toplay back audio content in synchrony as individual ones of playbackdevices 110, as one or more bonded playback devices, and/or as one ormore consolidated playback devices. Additional details regarding bondedand consolidated playback devices are described below with respect toFIGS. 1B and 1E-1M.

In some aspects, one or more of the playback zones in the environment101 may each be playing different audio content. For instance, a usermay be grilling on the patio 101 i and listening to hip hop music beingplayed by the playback device 110 c while another user is preparing foodin the kitchen 101 h and listening to classical music played by theplayback device 110 b. In another example, a playback zone may play thesame audio content in synchrony with another playback zone. Forinstance, the user may be in the office 101 e listening to the playbackdevice 110 f playing back the same hip-hop music being played back byplayback device 110 c on the patio 101 i. In some aspects, the playbackdevices 110 c and 110 f play back the hip hop music in synchrony suchthat the user perceives that the audio content is being playedseamlessly (or at least substantially seamlessly) while moving betweendifferent playback zones. Additional details regarding audio playbacksynchronization among playback devices and/or zones can be found, forexample, in U.S. Pat. No. 8,234,395 entitled, “System and method forsynchronizing operations among a plurality of independently clockeddigital data processing devices,” which is incorporated herein byreference in its entirety.

a. Suitable Media Playback System

FIG. 1B is a schematic diagram of the media playback system 100 and acloud network 102. For ease of illustration, certain devices of themedia playback system 100 and the cloud network 102 are omitted fromFIG. 1B. One or more communication links 103 (referred to hereinafter as“the links 103”) communicatively couple the media playback system 100and the cloud network 102.

The links 103 can comprise, for example, one or more wired networks, oneor more wireless networks, one or more wide area networks (WAN), one ormore local area networks (LAN), one or more personal area networks(PAN), one or more telecommunication networks (e.g., one or more GlobalSystem for Mobiles (GSM) networks, Code Division Multiple Access (CDMA)networks, Long-Term Evolution (LTE) networks, 5G communication networknetworks, and/or other suitable data transmission protocol networks),etc. The cloud network 102 is configured to deliver media content (e.g.,audio content, video content, photographs, social media content) to themedia playback system 100 in response to a request transmitted from themedia playback system 100 via the links 103. In some embodiments, thecloud network 102 is further configured to receive data (e.g., voiceinput data) from the media playback system 100 and correspondinglytransmit commands and/or media content to the media playback system 100.

The cloud network 102 comprises computing devices 106 (identifiedseparately as a first computing device 106 a, a second computing device106 b, and a third computing device 106 c). The computing devices 106can comprise individual computers or servers, such as, for example, amedia streaming service server storing audio and/or other media content,a voice service server, a social media server, a media playback systemcontrol server, etc. In some embodiments, one or more of the computingdevices 106 comprise modules of a single computer or server. In certainembodiments, one or more of the computing devices 106 comprise one ormore modules, computers, and/or servers. Moreover, while the cloudnetwork 102 is described above in the context of a single cloud network,in some embodiments the cloud network 102 comprises a plurality of cloudnetworks comprising communicatively coupled computing devices.Furthermore, while the cloud network 102 is shown in FIG. 1B as havingthree of the computing devices 106, in some embodiments, the cloudnetwork 102 comprises fewer (or more than) three computing devices 106.

The media playback system 100 is configured to receive media contentfrom the networks 102 via the links 103. The received media content cancomprise, for example, a Uniform Resource Identifier (URI) and/or aUniform Resource Locator (URL). For instance, in some examples, themedia playback system 100 can stream, download, or otherwise obtain datafrom a URI or a URL corresponding to the received media content. Anetwork 104 communicatively couples the links 103 and at least a portionof the devices (e.g., one or more of the playback devices 110, NMDs 120,and/or control devices 130) of the media playback system 100. Thenetwork 104 can include, for example, a wireless network (e.g., a WiFinetwork, a Bluetooth, a Z-Wave network, a ZigBee, and/or other suitablewireless communication protocol network) and/or a wired network (e.g., anetwork comprising Ethernet, Universal Serial Bus (USB), and/or anothersuitable wired communication). As those of ordinary skill in the artwill appreciate, as used herein, “WiFi” can refer to several differentcommunication protocols including, for example, Institute of Electricaland Electronics Engineers (IEEE) 802.11a, 802.11b, 802.11g, 802.11n,802.11ac, 802.11ac, 802.11ad, 802.11af, 802.11ah, 802.11ai, 802.11aj,802.11aq, 802.11ax, 802.11ay, 802.15, etc. transmitted at 2.4 Gigahertz(GHz), 5 GHz, and/or another suitable frequency.

In some embodiments, the network 104 comprises a dedicated communicationnetwork that the media playback system 100 uses to transmit messagesbetween individual devices and/or to transmit media content to and frommedia content sources (e.g., one or more of the computing devices 106).In certain embodiments, the network 104 is configured to be accessibleonly to devices in the media playback system 100, thereby reducinginterference and competition with other household devices. In otherembodiments, however, the network 104 comprises an existing householdcommunication network (e.g., a household WiFi network). In someembodiments, the links 103 and the network 104 comprise one or more ofthe same networks. In some aspects, for example, the links 103 and thenetwork 104 comprise a telecommunication network (e.g., an LTE network,a 5G network). Moreover, in some embodiments, the media playback system100 is implemented without the network 104, and devices comprising themedia playback system 100 can communicate with each other, for example,via one or more direct connections, PANs, telecommunication networks,and/or other suitable communication links. The network 104 may bereferred to herein as a “local communication network” to differentiatethe network 104 from the cloud network 102 that couples the mediaplayback system 100 to remote devices, such as cloud services.

In some embodiments, audio content sources may be regularly added orremoved from the media playback system 100. In some embodiments, forexample, the media playback system 100 performs an indexing of mediaitems when one or more media content sources are updated, added to,and/or removed from the media playback system 100. The media playbacksystem 100 can scan identifiable media items in some or all foldersand/or directories accessible to the playback devices 110 and generateor update a media content database comprising metadata (e.g., title,artist, album, track length) and other associated information (e.g.,URIs, URLs) for each identifiable media item found. In some embodiments,for example, the media content database is stored on one or more of theplayback devices 110, network microphone devices 120, and/or controldevices 130.

In the illustrated embodiment of FIG. 1B, the playback devices 110 l and110 m comprise a group 107 a. The playback devices 110 l and 110 m canbe positioned in different rooms in a household and be grouped togetherin the group 107 a on a temporary or permanent basis based on user inputreceived at the control device 130 a and/or another control device 130in the media playback system 100. When arranged in the group 107 a, theplayback devices 110 l and 110 m can be configured to play back the sameor similar audio content in synchrony from one or more audio contentsources. In certain embodiments, for example, the group 107 a comprisesa bonded zone in which the playback devices 110 l and 110 m compriseleft audio and right audio channels, respectively, of multi-channelaudio content, thereby producing or enhancing a stereo effect of theaudio content. In some embodiments, the group 107 a includes additionalplayback devices 110. In other embodiments, however, the media playbacksystem 100 omits the group 107 a and/or other grouped arrangements ofthe playback devices 110. Additional details regarding groups and otherarrangements of playback devices are described in further detail belowwith respect to FIGS. 1 -I through IM.

The media playback system 100 includes the NMDs 120 a and 120 d, eachcomprising one or more microphones configured to receive voiceutterances from a user. In the illustrated embodiment of FIG. 1B, theNMD 120 a is a standalone device and the NMD 120 d is integrated intothe playback device 110 n. The NMD 120 a, for example, is configured toreceive voice input 121 from a user 123. In some embodiments, the NMD120 a transmits data associated with the received voice input 121 to avoice assistant service (VAS) configured to (i) process the receivedvoice input data and (ii) facilitate one or more operations on behalf ofthe media playback system 100.

In some aspects, for example, the computing device 106 c comprises oneor more modules and/or servers of a VAS (e.g., a VAS operated by one ormore of SONOS®, AMAZON®, GOOGLE® APPLE®, MICROSOFT®). The computingdevice 106 c can receive the voice input data from the NMD 120 a via thenetwork 104 and the links 103.

In response to receiving the voice input data, the computing device 106c processes the voice input data (i.e., “Play Hey Jude by The Beatles”),and determines that the processed voice input includes a command to playa song (e.g., “Hey Jude”). In some embodiments, after processing thevoice input, the computing device 106 c accordingly transmits commandsto the media playback system 100 to play back “Hey Jude” by the Beatlesfrom a suitable media service (e.g., via one or more of the computingdevices 106) on one or more of the playback devices 110. In otherembodiments, the computing device 106 c may be configured to interfacewith media services on behalf of the media playback system 100. In suchembodiments, after processing the voice input, instead of the computingdevice 106 c transmitting commands to the media playback system 100causing the media playback system 100 to retrieve the requested mediafrom a suitable media service, the computing device 106 c itself causesa suitable media service to provide the requested media to the mediaplayback system 100 in accordance with the user's voice utterance.

b. Suitable Playback Devices

FIG. 1C is a block diagram of the playback device 110 a comprising aninput/output 111 (also referred to herein as a “communicationinterface”). The input/output 111 can include an analog I/O 111 a (e.g.,one or more wires, cables, and/or other suitable communication linksconfigured to carry analog signals) and/or a digital I/O 111 b (e.g.,one or more wires, cables, or other suitable communication linksconfigured to carry digital signals). In some embodiments, the analogI/O 111 a is an audio line-in input connection comprising, for example,an auto-detecting 3.5 mm audio line-in connection. In some embodiments,the digital I/O 111 b comprises a Sony/Philips Digital Interface Format(S/PDIF) communication interface and/or cable and/or a Toshiba Link(TOSLINK) cable. In some embodiments, the digital I/O 111 b comprises aHigh-Definition Multimedia Interface (HDMI) interface and/or cable. Insome embodiments, the digital I/O 111 b includes one or more wirelesscommunication links comprising, for example, a radio frequency (RF),infrared, WiFi, Bluetooth, or another suitable communication protocol.In certain embodiments, the analog I/O 111 a and the digital 111 bcomprise interfaces (e.g., ports, plugs, jacks) configured to receiveconnectors of cables transmitting analog and digital signals,respectively, without necessarily including cables.

The playback device 110 a, for example, can receive media content (e.g.,audio content comprising music and/or other sounds) from a local audiosource 105 via the input/output 111 (e.g., a cable, a wire, a PAN, aBluetooth connection, an ad hoc wired or wireless communication network,and/or another suitable communication link). The local audio source 105can comprise, for example, a mobile device (e.g., a smartphone, atablet, a laptop computer) or another suitable audio component (e.g., atelevision, a desktop computer, an amplifier, a phonograph, a Blu-rayplayer, a memory storing digital media files). In some aspects, thelocal audio source 105 includes local music libraries on a smartphone, acomputer, a networked-attached storage (NAS), and/or another suitabledevice configured to store media files. In certain embodiments, one ormore of the playback devices 110, NMDs 120, and/or control devices 130comprise the local audio source 105. In other embodiments, however, themedia playback system omits the local audio source 105 altogether. Insome embodiments, the playback device 110 a does not include aninput/output 111 and receives all audio content via the network 104.

The playback device 110 a further comprises electronics 112, a userinterface 113 (e.g., one or more buttons, knobs, dials, touch-sensitivesurfaces, displays, touchscreens), and one or more transducers 114(referred to hereinafter as “the transducers 114”). The electronics 112are configured to receive audio from an audio source (e.g., the localaudio source 105) via the input/output 111 or one or more of thecomputing devices 106 a-c via the network 104 (FIG. 1B), amplify thereceived audio, and output the amplified audio for playback via one ormore of the transducers 114. In some embodiments, the playback device110 a optionally includes one or more microphones 115 (e.g., a singlemicrophone, a plurality of microphones, a microphone array) (hereinafterreferred to as “the microphones 115”). In certain embodiments, forexample, the playback device 110 a having one or more of the optionalmicrophones 115 can operate as an NMD configured to receive voice inputfrom a user and correspondingly perform one or more operations based onthe received voice input.

In the illustrated embodiment of FIG. 1C, the electronics 112 compriseone or more processors 112 a (referred to hereinafter as “the processors112 a”), memory 112 b, software components 112 c, a network interface112 d, one or more audio processing components 112 g (referred tohereinafter as “the audio components 112 g”), one or more audioamplifiers 112 h (referred to hereinafter as “the amplifiers 112 h”),and power 112 i (e.g., one or more power supplies, power cables, powerreceptacles, batteries, induction coils, Power-over Ethernet (POE)interfaces, and/or other suitable sources of electric power). In someembodiments, the electronics 112 optionally include one or more othercomponents 112 j (e.g., one or more sensors, video displays,touchscreens, battery charging bases).

The processors 112 a can comprise clock-driven computing component(s)configured to process data, and the memory 112 b can comprise acomputer-readable medium (e.g., a tangible, non-transitorycomputer-readable medium loaded with one or more of the softwarecomponents 112 c) configured to store instructions for performingvarious operations and/or functions. The processors 112 a are configuredto execute the instructions stored on the memory 112 b to perform one ormore of the operations. The operations can include, for example, causingthe playback device 110 a to retrieve audio data from an audio source(e.g., one or more of the computing devices 106 a-c (FIG. 1B)), and/oranother one of the playback devices 110. In some embodiments, theoperations further include causing the playback device 110 a to sendaudio data to another one of the playback devices 110 a and/or anotherdevice (e.g., one of the NMDs 120). Certain embodiments includeoperations causing the playback device 110 a to pair with another of theone or more playback devices 110 to enable a multi-channel audioenvironment (e.g., a stereo pair, a bonded zone).

The processors 112 a can be further configured to perform operationscausing the playback device 110 a to synchronize playback of audiocontent with another of the one or more playback devices 110. As thoseof ordinary skill in the art will appreciate, during synchronousplayback of audio content on a plurality of playback devices, a listenerwill preferably be unable to perceive time-delay differences betweenplayback of the audio content by the playback device 110 a and the otherone or more other playback devices 110. Additional details regardingaudio playback synchronization among playback devices can be found, forexample, in U.S. Pat. No. 8,234,395, which was incorporated by referenceabove.

In some embodiments, the memory 112 b is further configured to storedata associated with the playback device 110 a, such as one or morezones and/or zone groups of which the playback device 110 a is a member,audio sources accessible to the playback device 110 a, and/or a playbackqueue that the playback device 110 a (and/or another of the one or moreplayback devices) can be associated with. The stored data can compriseone or more state variables that are periodically updated and used todescribe a state of the playback device 110 a. The memory 112 b can alsoinclude data associated with a state of one or more of the other devices(e.g., the playback devices 110, NMDs 120, control devices 130) of themedia playback system 100. In some aspects, for example, the state datais shared during predetermined intervals of time (e.g., every 5 seconds,every 10 seconds, every 60 seconds) among at least a portion of thedevices of the media playback system 100, so that one or more of thedevices have the most recent data associated with the media playbacksystem 100.

The network interface 112 d is configured to facilitate a transmissionof data between the playback device 110 a and one or more other deviceson a data network such as, for example, the links 103 and/or the network104 (FIG. 1B). The network interface 112 d is configured to transmit andreceive data corresponding to media content (e.g., audio content, videocontent, text, photographs) and other signals (e.g., non-transitorysignals) comprising digital packet data including an Internet Protocol(IP)-based source address and/or an IP-based destination address. Thenetwork interface 112 d can parse the digital packet data such that theelectronics 112 properly receives and processes the data destined forthe playback device 110 a.

In the illustrated embodiment of FIG. 1C, the network interface 112 dcomprises one or more wireless interfaces 112 e (referred to hereinafteras “the wireless interface 112 e”). The wireless interface 112 e (e.g.,a suitable interface comprising one or more antennae) can be configuredto wirelessly communicate with one or more other devices (e.g., one ormore of the other playback devices 110, NMDs 120, and/or control devices130) that are communicatively coupled to the network 104 (FIG. 1B) inaccordance with a suitable wireless communication protocol (e.g., WiFi,Bluetooth, LTE). In some embodiments, the network interface 112 doptionally includes a wired interface 112 f (e.g., an interface orreceptacle configured to receive a network cable such as an Ethernet, aUSB-A, USB-C, and/or Thunderbolt cable) configured to communicate over awired connection with other devices in accordance with a suitable wiredcommunication protocol. In certain embodiments, the network interface112 d includes the wired interface 112 f and excludes the wirelessinterface 112 e. In some embodiments, the electronics 112 excludes thenetwork interface 112 d altogether and transmits and receives mediacontent and/or other data via another communication path (e.g., theinput/output 111).

The audio components 112 g are configured to process and/or filter datacomprising media content received by the electronics 112 (e.g., via theinput/output 111 and/or the network interface 112 d) to produce outputaudio signals. In some embodiments, the audio processing components 112g comprise, for example, one or more digital-to-analog converters (DAC),audio preprocessing components, audio enhancement components, a digitalsignal processors (DSPs), and/or other suitable audio processingcomponents, modules, circuits, etc. In certain embodiments, one or moreof the audio processing components 112 g can comprise one or moresubcomponents of the processors 112 a. In some embodiments, theelectronics 112 omits the audio processing components 112 g. In someaspects, for example, the processors 112 a execute instructions storedon the memory 112 b to perform audio processing operations to producethe output audio signals.

The amplifiers 112 h are configured to receive and amplify the audiooutput signals produced by the audio processing components 112 g and/orthe processors 112 a. The amplifiers 112 h can comprise electronicdevices and/or components configured to amplify audio signals to levelssufficient for driving one or more of the transducers 114. In someembodiments, for example, the amplifiers 112 h include one or moreswitching or class-D power amplifiers. In other embodiments, however,the amplifiers include one or more other types of power amplifiers(e.g., linear gain power amplifiers, class-A amplifiers, class-Bamplifiers, class-AB amplifiers, class-C amplifiers, class-D amplifiers,class-E amplifiers, class-F amplifiers, class-G and/or class Hamplifiers, and/or another suitable type of power amplifier). In certainembodiments, the amplifiers 112 h comprise a suitable combination of twoor more of the foregoing types of power amplifiers. Moreover, in someembodiments, individual ones of the amplifiers 112 h correspond toindividual ones of the transducers 114. In other embodiments, however,the electronics 112 includes a single one of the amplifiers 112 hconfigured to output amplified audio signals to a plurality of thetransducers 114. In some other embodiments, the electronics 112 omitsthe amplifiers 112 h.

The transducers 114 (e.g., one or more speakers and/or speaker drivers)receive the amplified audio signals from the amplifier 112 h and renderor output the amplified audio signals as sound (e.g., audible soundwaves having a frequency between about 20 Hertz (Hz) and 20 kilohertz(kHz)). In some embodiments, the transducers 114 can comprise a singletransducer. In other embodiments, however, the transducers 114 comprisea plurality of audio transducers. In some embodiments, the transducers114 comprise more than one type of transducer. For example, thetransducers 114 can include one or more low frequency transducers (e.g.,subwoofers, woofers), mid-range frequency transducers (e.g., mid-rangetransducers, mid-woofers), and one or more high frequency transducers(e.g., one or more tweeters). As used herein, “low frequency” cangenerally refer to audible frequencies below about 500 Hz, “mid-rangefrequency” can generally refer to audible frequencies between about 500Hz and about 2 kHz, and “high frequency” can generally refer to audiblefrequencies above 2 kHz. In certain embodiments, however, one or more ofthe transducers 114 comprise transducers that do not adhere to theforegoing frequency ranges. For example, one of the transducers 114 maycomprise a mid-woofer transducer configured to output sound atfrequencies between about 200 Hz and about 5 kHz.

By way of illustration, SONOS, Inc. presently offers (or has offered)for sale certain playback devices including, for example, a “SONOS ONE,”“PLAY:1,” “PLAY:3,” “PLAY:5,” “PLAYBAR,” “PLAYBASE,” “CONNECT:AMP,”“CONNECT,” and “SUB.” Other suitable playback devices may additionallyor alternatively be used to implement the playback devices of exampleembodiments disclosed herein. Additionally, one of ordinary skilled inthe art will appreciate that a playback device is not limited to theexamples described herein or to SONOS product offerings. In someembodiments, for example, one or more playback devices 110 compriseswired or wireless headphones (e.g., over-the-ear headphones, on-earheadphones, in-ear earphones). In other embodiments, one or more of theplayback devices 110 comprise a docking station and/or an interfaceconfigured to interact with a docking station for personal mobile mediaplayback devices. In certain embodiments, a playback device may beintegral to another device or component such as a television, a lightingfixture, or some other device for indoor or outdoor use. In someembodiments, a playback device omits a user interface and/or one or moretransducers. For example, FIG. 1D is a block diagram of a playbackdevice 110 p comprising the input/output 111 and electronics 112 withoutthe user interface 113 or transducers 114.

FIG. 1E is a block diagram of a bonded playback device 110 q comprisingthe playback device 110 a (FIG. 1C) sonically bonded with the playbackdevice 110 i (e.g., a subwoofer) (FIG. 1A). In the illustratedembodiment, the playback devices 110 a and 110 i are separate ones ofthe playback devices 110 housed in separate enclosures. In someembodiments, however, the bonded playback device 110 q comprises asingle enclosure housing both the playback devices 110 a and 110 i. Thebonded playback device 110 q can be configured to process and reproducesound differently than an unbonded playback device (e.g., the playbackdevice 110 a of FIG. 1C) and/or paired or bonded playback devices (e.g.,the playback devices 110 l and 110 m of FIG. 1B). In some embodiments,for example, the playback device 110 a is full-range playback deviceconfigured to render low frequency, mid-range frequency, and highfrequency audio content, and the playback device 110 i is a subwooferconfigured to render low frequency audio content. In some aspects, theplayback device 110 a, when bonded with the first playback device, isconfigured to render only the mid-range and high frequency components ofa particular audio content, while the playback device 110 i renders thelow frequency component of the particular audio content. In someembodiments, the bonded playback device 110 q includes additionalplayback devices and/or another bonded playback device. Additionalplayback device embodiments are described in further detail below withrespect to FIGS. 2A-3D.

c. Suitable Network Microphone Devices (NMDs)

FIG. 1F is a block diagram of the NMD 120 a (FIGS. 1A and 1B). The NMD120 a includes one or more voice processing components 124 (hereinafter“the voice components 124”) and several components described withrespect to the playback device 110 a (FIG. 1C) including the processors112 a, the memory 112 b, and the microphones 115. The NMD 120 aoptionally comprises other components also included in the playbackdevice 110 a (FIG. 1C), such as the user interface 113 and/or thetransducers 114. In some embodiments, the NMD 120 a is configured as amedia playback device (e.g., one or more of the playback devices 110),and further includes, for example, one or more of the audio components112 g (FIG. 1C), the amplifiers 114, and/or other playback devicecomponents. In certain embodiments, the NMD 120 a comprises an Internetof Things (IoT) device such as, for example, a thermostat, alarm panel,fire and/or smoke detector, etc. In some embodiments, the NMD 120 acomprises the microphones 115, the voice processing 124, and only aportion of the components of the electronics 112 described above withrespect to FIG. 1B. In some aspects, for example, the NMD 120 a includesthe processor 112 a and the memory 112 b (FIG. 1B), while omitting oneor more other components of the electronics 112. In some embodiments,the NMD 120 a includes additional components (e.g., one or more sensors,cameras, thermometers, barometers, hygrometers).

In some embodiments, an NMD can be integrated into a playback device.FIG. 1G is a block diagram of a playback device 110 r comprising an NMD120 d. The playback device 110 r can comprise many or all of thecomponents of the playback device 110 a and further include themicrophones 115 and voice processing 124 (FIG. 1F). The playback device110 r optionally includes an integrated control device 130 c. Thecontrol device 130 c can comprise, for example, a user interface (e.g.,the user interface 113 of FIG. 1B) configured to receive user input(e.g., touch input, voice input) without a separate control device. Inother embodiments, however, the playback device 110 r receives commandsfrom another control device (e.g., the control device 130 a of FIG. 1B).Additional NMD embodiments are described in further detail below withrespect to FIGS. 3A-3F.

Referring again to FIG. 1F, the microphones 115 are configured toacquire, capture, and/or receive sound from an environment (e.g., theenvironment 101 of FIG. 1A) and/or a room in which the NMD 120 a ispositioned. The received sound can include, for example, vocalutterances, audio played back by the NMD 120 a and/or another playbackdevice, background voices, ambient sounds, etc. The microphones 115convert the received sound into electrical signals to produce microphonedata. The voice processing 124 receives and analyzes the microphone datato determine whether a voice input is present in the microphone data.The voice input can comprise, for example, an activation word followedby an utterance including a user request. As those of ordinary skill inthe art will appreciate, an activation word is a word or other audio cuesignifying a user voice input. For instance, in querying the AMAZON®VAS, a user might speak the activation word “Alexa.” Other examplesinclude “Ok, Google” for invoking the GOOGLE® VAS and “Hey, Siri” forinvoking the APPLE® VAS.

After detecting the activation word, voice processing 124 monitors themicrophone data for an accompanying user request in the voice input. Theuser request may include, for example, a command to control athird-party device, such as a thermostat (e.g., NEST® thermostat), anillumination device (e.g., a PHILIPS HUE® lighting device), or a mediaplayback device (e.g., a Sonos® playback device). For example, a usermight speak the activation word “Alexa” followed by the utterance “setthe thermostat to 68 degrees” to set a temperature in a home (e.g., theenvironment 101 of FIG. 1A). The user might speak the same activationword followed by the utterance “turn on the living room” to turn onillumination devices in a living room area of the home. The user maysimilarly speak an activation word followed by a request to play aparticular song, an album, or a playlist of music on a playback devicein the home. Additional description regarding receiving and processingvoice input data can be found in further detail below with respect toFIGS. 3A-3F.

d. Suitable Control Devices

FIG. 1H is a partial schematic diagram of the control device 130 a(FIGS. 1A and 1B). As used herein, the term “control device” can be usedinterchangeably with “controller” or “control system.” Among otherfeatures, the control device 130 a is configured to receive user inputrelated to the media playback system 100 and, in response, cause one ormore devices in the media playback system 100 to perform an action(s) oroperation(s) corresponding to the user input. In the illustratedembodiment, the control device 130 a comprises a smartphone (e.g., aniPhone™, an Android phone) on which media playback system controllerapplication software is installed. In some embodiments, the controldevice 130 a comprises, for example, a tablet (e.g., an iPad™), acomputer (e.g., a laptop computer, a desktop computer), and/or anothersuitable device (e.g., a television, an automobile audio head unit, anIoT device). In certain embodiments, the control device 130 a comprisesa dedicated controller for the media playback system 100. In otherembodiments, as described above with respect to FIG. 1G, the controldevice 130 a is integrated into another device in the media playbacksystem 100 (e.g., one more of the playback devices 110, NMDs 120, and/orother suitable devices configured to communicate over a network).

The control device 130 a includes electronics 132, a user interface 133,one or more speakers 134, and one or more microphones 135. Theelectronics 132 comprise one or more processors 132 a (referred tohereinafter as “the processors 132 a”), a memory 132 b, softwarecomponents 132 c, and a network interface 132 d. The processor 132 a canbe configured to perform functions relevant to facilitating user access,control, and configuration of the media playback system 100. The memory132 b can comprise data storage that can be loaded with one or more ofthe software components executable by the processor 302 to perform thosefunctions. The software components 132 c can comprise applicationsand/or other executable software configured to facilitate control of themedia playback system 100. The memory 112 b can be configured to store,for example, the software components 132 c, media playback systemcontroller application software, and/or other data associated with themedia playback system 100 and the user.

The network interface 132 d is configured to facilitate networkcommunications between the control device 130 a and one or more otherdevices in the media playback system 100, and/or one or more remotedevices. In some embodiments, the network interface 132 d is configuredto operate according to one or more suitable communication industrystandards (e.g., infrared, radio, wired standards including IEEE 802.3,wireless standards including IEEE 802.11a, 802.11b, 802.11g, 802.11n,802.11ac, 802.15, 4G, LTE). The network interface 132 d can beconfigured, for example, to transmit data to and/or receive data fromthe playback devices 110, the NMDs 120, other ones of the controldevices 130, one of the computing devices 106 of FIG. 1B, devicescomprising one or more other media playback systems, etc. Thetransmitted and/or received data can include, for example, playbackdevice control commands, state variables, playback zone and/or zonegroup configurations. For instance, based on user input received at theuser interface 133, the network interface 132 d can transmit a playbackdevice control command (e.g., volume control, audio playback control,audio content selection) from the control device 304 to one or more ofthe playback devices 110. The network interface 132 d can also transmitand/or receive configuration changes such as, for example,adding/removing one or more playback devices 110 to/from a zone,adding/removing one or more zones to/from a zone group, forming a bondedor consolidated player, separating one or more playback devices from abonded or consolidated player, among others. Additional description ofzones and groups can be found below with respect to FIGS. 1 -I through1M.

The user interface 133 is configured to receive user input and canfacilitate control of the media playback system 100. The user interface133 includes media content art 133a (e.g., album art, lyrics, videos), aplayback status indicator 133 b (e.g., an elapsed and/or remaining timeindicator), media content information region 133 c, a playback controlregion 133 d, and a zone indicator 133 e. The media content informationregion 133 c can include a display of relevant information (e.g., title,artist, album, genre, release year) about media content currentlyplaying and/or media content in a queue or playlist. The playbackcontrol region 133 d can include selectable (e.g., via touch inputand/or via a cursor or another suitable selector) icons to cause one ormore playback devices in a selected playback zone or zone group toperform playback actions such as, for example, play or pause, fastforward, rewind, skip to next, skip to previous, enter/exit shufflemode, enter/exit repeat mode, enter/exit cross fade mode, etc. Theplayback control region 133 d may also include selectable icons tomodify equalization settings, playback volume, and/or other suitableplayback actions. In the illustrated embodiment, the user interface 133comprises a display presented on a touch screen interface of asmartphone (e.g., an iPhone™, an Android phone). In some embodiments,however, user interfaces of varying formats, styles, and interactivesequences may alternatively be implemented on one or more networkdevices to provide comparable control access to a media playback system.

The one or more speakers 134 (e.g., one or more transducers) can beconfigured to output sound to the user of the control device 130 a. Insome embodiments, the one or more speakers comprise individualtransducers configured to correspondingly output low frequencies,mid-range frequencies, and/or high frequencies. In some aspects, forexample, the control device 130 a is configured as a playback device(e.g., one of the playback devices 110). Similarly, in some embodimentsthe control device 130 a is configured as an NMD (e.g., one of the NMDs120), receiving voice commands and other sounds via the one or moremicrophones 135.

The one or more microphones 135 can comprise, for example, one or morecondenser microphones, electret condenser microphones, dynamicmicrophones, and/or other suitable types of microphones or transducers.In some embodiments, two or more of the microphones 135 are arranged tocapture location information of an audio source (e.g., voice, audiblesound) and/or configured to facilitate filtering of background noise.Moreover, in certain embodiments, the control device 130 a is configuredto operate as playback device and an NMD. In other embodiments, however,the control device 130 a omits the one or more speakers 134 and/or theone or more microphones 135. For instance, the control device 130 a maycomprise a device (e.g., a thermostat, an IoT device, a network device)comprising a portion of the electronics 132 and the user interface 133(e.g., a touch screen) without any speakers or microphones. Additionalcontrol device embodiments are described in further detail below withrespect to FIGS. 4A-4D and 5 .

e. Suitable Playback Device Configurations

FIGS. 1I through 1M show example configurations of playback devices inzones and zone groups. Referring first to FIG. 1M, in one example, asingle playback device may belong to a zone. For example, the playbackdevice 110 g in the second bedroom 101 c (FIG. 1A) may belong to Zone C.In some implementations described below, multiple playback devices maybe “bonded” to form a “bonded pair” which together form a single zone.For example, the playback device 110 l (e.g., a left playback device)can be bonded to the playback device 110 l (e.g., a left playbackdevice) to form Zone A. Bonded playback devices may have differentplayback responsibilities (e.g., channel responsibilities). In anotherimplementation described below, multiple playback devices may be mergedto form a single zone. For example, the playback device 110 h (e.g., afront playback device) may be merged with the playback device 110 i(e.g., a subwoofer), and the playback devices 110 j and 110 k (e.g.,left and right surround speakers, respectively) to form a single Zone D.In another example, the playback devices 110 g and 110 h can be mergedto form a merged group or a zone group 108 b. The merged playbackdevices 110 g and 110 h may not be specifically assigned differentplayback responsibilities. That is, the merged playback devices 110 hand 110 i may, aside from playing audio content in synchrony, each playaudio content as they would if they were not merged.

Each zone in the media playback system 100 may be provided for controlas a single user interface (UI) entity. For example, Zone A may beprovided as a single entity named Master Bathroom. Zone B may beprovided as a single entity named Master Bedroom. Zone C may be providedas a single entity named Second Bedroom.

Playback devices that are bonded may have different playbackresponsibilities, such as responsibilities for certain audio channels.For example, as shown in FIG. 1 -I, the playback devices 110 l and 110 mmay be bonded so as to produce or enhance a stereo effect of audiocontent. In this example, the playback device 110 l may be configured toplay a left channel audio component, while the playback device 110 k maybe configured to play a right channel audio component. In someimplementations, such stereo bonding may be referred to as “pairing.”

Additionally, bonded playback devices may have additional and/ordifferent respective speaker drivers. As shown in FIG. 1J, the playbackdevice 110 h named Front may be bonded with the playback device 110 inamed SUB. The Front device 110 h can be configured to render a range ofmid to high frequencies and the SUB device 110 i can be configuredrender low frequencies. When unbonded, however, the Front device 110 hcan be configured render a full range of frequencies. As anotherexample, FIG. 1K shows the Front and SUB devices 110 h and 110 i furtherbonded with Left and Right playback devices 110 j and 110 k,respectively. In some implementations, the Right and Left devices 110 jand 102 k can be configured to form surround or “satellite” channels ofa home theater system. The bonded playback devices 110 h, 110 i, 110 j,and 110 k may form a single Zone D (FIG. 1M).

Playback devices that are merged may not have assigned playbackresponsibilities and may each render the full range of audio content therespective playback device is capable of. Nevertheless, merged devicesmay be represented as a single UI entity (i.e., a zone, as discussedabove). For instance, the playback devices 110 a and 110 n in the masterbathroom have the single UI entity of Zone A. In one embodiment, theplayback devices 110 a and 110 n may each output the full range of audiocontent each respective playback devices 110 a and 110 n are capable of,in synchrony.

In some embodiments, an NMD is bonded or merged with another device soas to form a zone. For example, the NMD 120 b may be bonded with theplayback device 110 e, which together form Zone F, named Living Room. Inother embodiments, a stand-alone network microphone device may be in azone by itself. In other embodiments, however, a stand-alone networkmicrophone device may not be associated with a zone. Additional detailsregarding associating network microphone devices and playback devices asdesignated or default devices may be found, for example, in previouslyreferenced U.S. patent application Ser. No. 15/438,749.

Zones of individual, bonded, and/or merged devices may be grouped toform a zone group. For example, referring to FIG. 1M, Zone A may begrouped with Zone B to form a zone group 108 a that includes the twozones. Similarly, Zone G may be grouped with Zone H to form the zonegroup 108 b. As another example, Zone A may be grouped with one or moreother Zones C-I. The Zones A-I may be grouped and ungrouped in numerousways. For example, three, four, five, or more (e.g., all) of the ZonesA-I may be grouped. When grouped, the zones of individual and/or bondedplayback devices may play back audio in synchrony with one another, asdescribed in previously referenced U.S. Pat. No. 8,234,395. Playbackdevices may be dynamically grouped and ungrouped to form new ordifferent groups that synchronously play back audio content.

In various implementations, the zones in an environment may be thedefault name of a zone within the group or a combination of the names ofthe zones within a zone group. For example, Zone Group 108 b can beassigned a name such as “Dining+Kitchen”, as shown in FIG. 1M. In someembodiments, a zone group may be given a unique name selected by a user.

Certain data may be stored in a memory of a playback device (e.g., thememory 112 b of FIG. 1C) as one or more state variables that areperiodically updated and used to describe the state of a playback zone,the playback device(s), and/or a zone group associated therewith. Thememory may also include the data associated with the state of the otherdevices of the media system and shared from time to time among thedevices so that one or more of the devices have the most recent dataassociated with the system.

In some embodiments, the memory may store instances of various variabletypes associated with the states. Variables instances may be stored withidentifiers (e.g., tags) corresponding to type. For example, certainidentifiers may be a first type “al” to identify playback device(s) of azone, a second type “b 1” to identify playback device(s) that may bebonded in the zone, and a third type “cl” to identify a zone group towhich the zone may belong. As a related example, identifiers associatedwith the second bedroom 101 c may indicate that the playback device isthe only playback device of the Zone C and not in a zone group.Identifiers associated with the Den may indicate that the Den is notgrouped with other zones but includes bonded playback devices 110 h-110k. Identifiers associated with the Dining Room may indicate that theDining Room is part of the Dining+Kitchen zone group 108 b and thatdevices 110 b and 110 d are grouped (FIG. 1L). Identifiers associatedwith the Kitchen may indicate the same or similar information by virtueof the Kitchen being part of the Dining+Kitchen zone group 108 b. Otherexample zone variables and identifiers are described below.

In yet another example, the media playback system 100 may comprisevariables or identifiers representing other associations of zones andzone groups, such as identifiers associated with Areas, as shown in FIG.1M. An area may involve a cluster of zone groups and/or zones not withina zone group. For instance, FIG. 1M shows an Upper Area 109 a includingZones A-D, and a Lower Area 109 b including Zones E-I. In one aspect, anArea may be used to invoke a cluster of zone groups and/or zones thatshare one or more zones and/or zone groups of another cluster. Inanother aspect, this differs from a zone group, which does not share azone with another zone group. Further examples of techniques forimplementing Areas may be found, for example, in U.S. application Ser.No. 15/682,506 filed Aug. 21, 2017, and titled “Room Association Basedon Name,” and U.S. Pat. No. 8,483,853 filed Sep. 11, 2007, and titled“Controlling and manipulating groupings in a multi-zone media system.”Each of these applications is incorporated herein by reference in itsentirety. In some embodiments, the media playback system 100 may notimplement Areas, in which case the system may not store variablesassociated with Areas.

III. Example Systems and Devices

FIG. 2A is a front isometric view of a playback device 210 configured inaccordance with aspects of the disclosed technology. FIG. 2B is a frontisometric view of the playback device 210 without a grille 216 e. FIG.2C is an exploded view of the playback device 210. Referring to FIGS.2A-2C together, the playback device 210 comprises a housing 216 thatincludes an upper portion 216 a, a right or first side portion 216 b, alower portion 216 c, a left or second side portion 216 d, the grille 216e, and a rear portion 216 f A plurality of fasteners 216 g (e.g., one ormore screws, rivets, clips) attaches a frame 216 h to the housing 216. Acavity 216 j (FIG. 2C) in the housing 216 is configured to receive theframe 216 h and electronics 212. The frame 216 h is configured to carrya plurality of transducers 214 (identified individually in FIG. 2B astransducers 214 a-f). The electronics 212 (e.g., the electronics 112 ofFIG. 1C) is configured to receive audio content from an audio source andsend electrical signals corresponding to the audio content to thetransducers 214 for playback.

The transducers 214 are configured to receive the electrical signalsfrom the electronics 112, and further configured to convert the receivedelectrical signals into audible sound during playback. For instance, thetransducers 214 a-c (e.g., tweeters) can be configured to output highfrequency sound (e.g., sound waves having a frequency greater than about2 kHz). The transducers 214 d-f (e.g., mid-woofers, woofers, midrangespeakers) can be configured output sound at frequencies lower than thetransducers 214 a-c (e.g., sound waves having a frequency lower thanabout 2 kHz). In some embodiments, the playback device 210 includes anumber of transducers different than those illustrated in FIGS. 2A-2C.For example, as described in further detail below with respect to FIGS.3A-3C, the playback device 210 can include fewer than six transducers(e.g., one, two, three). In other embodiments, however, the playbackdevice 210 includes more than six transducers (e.g., nine, ten).Moreover, in some embodiments, all or a portion of the transducers 214are configured to operate as a phased array to desirably adjust (e.g.,narrow or widen) a radiation pattern of the transducers 214, therebyaltering a user's perception of the sound emitted from the playbackdevice 210.

In the illustrated embodiment of FIGS. 2A-2C, a filter 216 i is axiallyaligned with the transducer 214 b. The filter 216 i can be configured todesirably attenuate a predetermined range of frequencies that thetransducer 214 b outputs to improve sound quality and a perceived soundstage output collectively by the transducers 214. In some embodiments,however, the playback device 210 omits the filter 216 i. In otherembodiments, the playback device 210 includes one or more additionalfilters aligned with the transducers 214 b and/or at least another ofthe transducers 214.

FIGS. 3A and 3B are front and right isometric side views, respectively,of an NMD 320 configured in accordance with embodiments of the disclosedtechnology. FIG. 3C is an exploded view of the NMD 320. FIG. 3D is anenlarged view of a portion of FIG. 3B including a user interface 313 ofthe NMD 320. Referring first to FIGS. 3A-3C, the NMD 320 includes ahousing 316 comprising an upper portion 316 a, a lower portion 316 b andan intermediate portion 316 c (e.g., a grille). A plurality of ports,holes, or apertures 316 d in the upper portion 316 a allow sound to passthrough to one or more microphones 315 (FIG. 3C) positioned within thehousing 316. The one or more microphones 316 are configured to receivedsound via the apertures 316 d and produce electrical signals based onthe received sound. In the illustrated embodiment, a frame 316 e (FIG.3C) of the housing 316 surrounds cavities 316 f and 316 g configured tohouse, respectively, a first transducer 314 a (e.g., a tweeter) and asecond transducer 314 b (e.g., a mid-woofer, a midrange speaker, awoofer). In other embodiments, however, the NMD 320 includes a singletransducer, or more than two (e.g., two, five, six) transducers. Incertain embodiments, the NMD 320 omits the transducers 314 a and 314 baltogether.

Electronics 312 (FIG. 3C) includes components configured to drive thetransducers 314 a and 314 b, and further configured to analyze audiodata corresponding to the electrical signals produced by the one or moremicrophones 315. In some embodiments, for example, the electronics 312comprises many or all of the components of the electronics 112 describedabove with respect to FIG. 1C. In certain embodiments, the electronics312 includes components described above with respect to FIG. 1F such as,for example, the one or more processors 112 a, the memory 112 b, thesoftware components 112 c, the network interface 112 d, etc. In someembodiments, the electronics 312 includes additional suitable components(e.g., proximity or other sensors).

Referring to FIG. 3D, the user interface 313 includes a plurality ofcontrol surfaces (e.g., buttons, knobs, capacitive surfaces) including afirst control surface 313 a (e.g., a previous control), a second controlsurface 313 b (e.g., a next control), and a third control surface 313 c(e.g., a play and/or pause control). A fourth control surface 313 d isconfigured to receive touch input corresponding to activation anddeactivation of the one or microphones 315. A first indicator 313 e(e.g., one or more light emitting diodes (LEDs) or another suitableilluminator) can be configured to illuminate only when the one or moremicrophones 315 are activated. A second indicator 313 f (e.g., one ormore LEDs) can be configured to remain solid during normal operation andto blink or otherwise change from solid to indicate a detection of voiceactivity. In some embodiments, the user interface 313 includesadditional or fewer control surfaces and illuminators. In oneembodiment, for example, the user interface 313 includes the firstindicator 313 e, omitting the second indicator 313 f Moreover, incertain embodiments, the NMD 320 comprises a playback device and acontrol device, and the user interface 313 comprises the user interfaceof the control device.

Referring to FIGS. 3A-3D together, the NMD 320 is configured to receivevoice commands from one or more adjacent users via the one or moremicrophones 315. As described above with respect to FIG. 1B, the one ormore microphones 315 can acquire, capture, or record sound in a vicinity(e.g., a region within 10 m or less of the NMD 320) and transmitelectrical signals corresponding to the recorded sound to theelectronics 312. The electronics 312 can process the electrical signalsand can analyze the resulting audio data to determine a presence of oneor more voice commands (e.g., one or more activation words). In someembodiments, for example, after detection of one or more suitable voicecommands, the NMD 320 is configured to transmit a portion of therecorded audio data to another device and/or a remote server (e.g., oneor more of the computing devices 106 of FIG. 1B) for further analysis.The remote server can analyze the audio data, determine an appropriateaction based on the voice command, and transmit a message to the NMD 320to perform the appropriate action. For instance, a user may speak“Sonos, play Michael Jackson.” The NMD 320 can, via the one or moremicrophones 315, record the user's voice utterance, determine thepresence of a voice command, and transmit the audio data having thevoice command to a remote server (e.g., one or more of the remotecomputing devices 106 of FIG. 1B, one or more servers of a VAS and/oranother suitable service). The remote server can analyze the audio dataand determine an action corresponding to the command. The remote servercan then transmit a command to the NMD 320 to perform the determinedaction (e.g., play back audio content related to Michael Jackson). TheNMD 320 can receive the command and play back the audio content relatedto Michael Jackson from a media content source. As described above withrespect to FIG. 1B, suitable content sources can include a device orstorage communicatively coupled to the NMD 320 via a LAN (e.g., thenetwork 104 of FIG. 1B), a remote server (e.g., one or more of theremote computing devices 106 of FIG. 1B), etc. In certain embodiments,however, the NMD 320 determines and/or performs one or more actionscorresponding to the one or more voice commands without intervention orinvolvement of an external device, computer, or server.

FIG. 3E is a functional block diagram showing additional features of theNMD 320 in accordance with aspects of the disclosure. The NMD 320includes components configured to facilitate voice command captureincluding voice activity detector component(s) 312 k, beam formercomponents 312 l, acoustic echo cancellation (AEC) and/or self-soundsuppression components 312 m, activation word detector components 312 n,and voice/speech conversion components 312 o (e.g., voice-to-text andtext-to-voice). In the illustrated embodiment of FIG. 3E, the foregoingcomponents 312 k-312 o are shown as separate components. In someembodiments, however, one or more of the components 312 k-312 o aresubcomponents of the processors 112 a.

The beamforming and self-sound suppression components 312 l and 312 mare configured to detect an audio signal and determine aspects of voiceinput represented in the detected audio signal, such as the direction,amplitude, frequency spectrum, etc. The voice activity detector activitycomponents 312 k are operably coupled with the beamforming and AECcomponents 312 l and 312 m and are configured to determine a directionand/or directions from which voice activity is likely to have occurredin the detected audio signal. Potential speech directions can beidentified by monitoring metrics which distinguish speech from othersounds. Such metrics can include, for example, energy within the speechband relative to background noise and entropy within the speech band,which is measure of spectral structure. As those of ordinary skill inthe art will appreciate, speech typically has a lower entropy than mostcommon background noise.

The activation word detector components 312 n are configured to monitorand analyze received audio to determine if any activation words (e.g.,wake words) are present in the received audio. The activation worddetector components 312 n may analyze the received audio using anactivation word detection algorithm. If the activation word detector 312n detects an activation word, the NMD 320 may process voice inputcontained in the received audio. Example activation word detectionalgorithms accept audio as input and provide an indication of whether anactivation word is present in the audio. Many first- and third-partyactivation word detection algorithms are known and commerciallyavailable. For instance, operators of a voice service may make theiralgorithm available for use in third-party devices. Alternatively, analgorithm may be trained to detect certain activation words. In someembodiments, the activation word detector 312 n runs multiple activationword detection algorithms on the received audio simultaneously (orsubstantially simultaneously). As noted above, different voice services(e.g. AMAZON's ALEXA®, APPLE's SIRI®, or MICROSOFT's CORTANA®) can eachuse a different activation word for invoking their respective voiceservice. To support multiple services, the activation word detector 312n may run the received audio through the activation word detectionalgorithm for each supported voice service in parallel.

The speech/text conversion components 312 o may facilitate processing byconverting speech in the voice input to text. In some embodiments, theelectronics 312 can include voice recognition software that is trainedto a particular user or a particular set of users associated with ahousehold. Such voice recognition software may implementvoice-processing algorithms that are tuned to specific voice profile(s).Tuning to specific voice profiles may require less computationallyintensive algorithms than traditional voice activity services, whichtypically sample from a broad base of users and diverse requests thatare not targeted to media playback systems.

FIG. 3F is a schematic diagram of an example voice input 328 captured bythe NMD 320 in accordance with aspects of the disclosure. The voiceinput 328 can include an activation word portion 328 a and a voiceutterance portion 328 b. In some embodiments, the activation word 557 acan be a known activation word, such as “Alexa,” which is associatedwith AMAZON's ALEXA®. In other embodiments, however, the voice input 328may not include an activation word. In some embodiments, a networkmicrophone device may output an audible and/or visible response upondetection of the activation word portion 328 a. In addition oralternately, an NMB may output an audible and/or visible response afterprocessing a voice input and/or a series of voice inputs.

The voice utterance portion 328 b may include, for example, one or morespoken commands (identified individually as a first command 328 c and asecond command 328 e) and one or more spoken keywords (identifiedindividually as a first keyword 328 d and a second keyword 328 f). Inone example, the first command 328 c can be a command to play music,such as a specific song, album, playlist, etc. In this example, thekeywords may be one or words identifying one or more zones in which themusic is to be played, such as the Living Room and the Dining Room shownin FIG. 1A. In some examples, the voice utterance portion 328 b caninclude other information, such as detected pauses (e.g., periods ofnon-speech) between words spoken by a user, as shown in FIG. 3F. Thepauses may demarcate the locations of separate commands, keywords, orother information spoke by the user within the voice utterance portion328 b.

In some embodiments, the media playback system 100 is configured totemporarily reduce the volume of audio content that it is playing whiledetecting the activation word portion 557 a. The media playback system100 may restore the volume after processing the voice input 328, asshown in FIG. 3F. Such a process can be referred to as ducking, examplesof which are disclosed in U.S. patent application Ser. No. 15/438,749,incorporated by reference herein in its entirety.

FIGS. 4A-4D are schematic diagrams of a control device 430 (e.g., thecontrol device 130 a of FIG. 1H, a smartphone, a tablet, a dedicatedcontrol device, an IoT device, and/or another suitable device) showingcorresponding user interface displays in various states of operation.The control device comprises one or more processors, memory, softwarecomponents, a network interface (also referred to herein as a“communication interface”).

A first user interface display 431 a (FIG. 4A) includes a display name433 a (i.e., “Rooms”). A selected group region 433 b displays audiocontent information (e.g., artist name, track name, album art) of audiocontent played back in the selected group and/or zone. Group regions 433c and 433 d display corresponding group and/or zone name, and audiocontent information audio content played back or next in a playbackqueue of the respective group or zone. An audio content region 433 eincludes information related to audio content in the selected groupand/or zone (i.e., the group and/or zone indicated in the selected groupregion 433 b). A lower display region 433 f is configured to receivetouch input to display one or more other user interface displays. Forexample, if a user selects “Browse” in the lower display region 433 f,the control device 430 can be configured to output a second userinterface display 431 b (FIG. 4B) comprising a plurality of musicservices 433 g (e.g., Spotify, Radio by Tunein, Apple Music, Pandora,Amazon, TV, local music, line-in) through which the user can browse andfrom which the user can select media content for play back via one ormore playback devices (e.g., one of the playback devices 110 of FIG.1A). Alternatively, if the user selects “My Sonos” in the lower displayregion 433 f, the control device 430 can be configured to output a thirduser interface display 431 c (FIG. 4C). A first media content region 433h can include graphical representations (e.g., album art) correspondingto individual albums, stations, or playlists. A second media contentregion 433 i can include graphical representations (e.g., album art)corresponding to individual songs, tracks, or other media content. Ifthe user selects a graphical representation 433 j (FIG. 4C), the controldevice 430 can be configured to begin play back of audio contentcorresponding to the graphical representation 433 j and output a fourthuser interface display 431 d fourth user interface display 431 dincludes an enlarged version of the graphical representation 433 j,media content information 433 k (e.g., track name, artist, album),transport controls 433 m (e.g., play, previous, next, pause, volume),and indication 433 n of the currently selected group and/or zone name.

FIG. 5 is a schematic diagram of a control device 530 (e.g., a laptopcomputer, a desktop computer). The control device 530 includestransducers 534, a microphone 535, and a camera 536. A user interface531 includes a transport control region 533 a, a playback status region533 b, a playback zone region 533 c, a playback queue region 533 d, anda media content source region 533 e. The transport control regioncomprises one or more controls for controlling media playback including,for example, volume, previous, play/pause, next, repeat, shuffle, trackposition, crossfade, equalization, etc. The audio content source region533 e includes a listing of one or more media content sources from whicha user can select media items for play back and/or adding to a playbackqueue.

The playback zone region 533 b can include representations of playbackzones within the media playback system 100 (FIGS. 1A and 1B). In someembodiments, the graphical representations of playback zones may beselectable to bring up additional selectable icons to manage orconfigure the playback zones in the media playback system, such as acreation of bonded zones, creation of zone groups, separation of zonegroups, renaming of zone groups, etc. In the illustrated embodiment, a“group” icon is provided within each of the graphical representations ofplayback zones. The “group” icon provided within a graphicalrepresentation of a particular zone may be selectable to bring upoptions to select one or more other zones in the media playback systemto be grouped with the particular zone. Once grouped, playback devicesin the zones that have been grouped with the particular zone can beconfigured to play audio content in synchrony with the playbackdevice(s) in the particular zone. Analogously, a “group” icon may beprovided within a graphical representation of a zone group. In theillustrated embodiment, the “group” icon may be selectable to bring upoptions to deselect one or more zones in the zone group to be removedfrom the zone group. In some embodiments, the control device 530includes other interactions and implementations for grouping andungrouping zones via the user interface 531. In certain embodiments, therepresentations of playback zones in the playback zone region 533 b canbe dynamically updated as playback zone or zone group configurations aremodified.

The playback status region 533 c includes graphical representations ofaudio content that is presently being played, previously played, orscheduled to play next in the selected playback zone or zone group. Theselected playback zone or zone group may be visually distinguished onthe user interface, such as within the playback zone region 533 b and/orthe playback queue region 533 d. The graphical representations mayinclude track title, artist name, album name, album year, track length,and other relevant information that may be useful for the user to knowwhen controlling the media playback system 100 via the user interface531.

The playback queue region 533 d includes graphical representations ofaudio content in a playback queue associated with the selected playbackzone or zone group. In some embodiments, each playback zone or zonegroup may be associated with a playback queue containing informationcorresponding to zero or more audio items for playback by the playbackzone or zone group. For instance, each audio item in the playback queuemay comprise a uniform resource identifier (URI), a uniform resourcelocator (URL) or some other identifier that may be used by a playbackdevice in the playback zone or zone group to find and/or retrieve theaudio item from a local audio content source or a networked audiocontent source, possibly for playback by the playback device. In someembodiments, for example, a playlist can be added to a playback queue,in which information corresponding to each audio item in the playlistmay be added to the playback queue. In some embodiments, audio items ina playback queue may be saved as a playlist. In certain embodiments, aplayback queue may be empty, or populated but “not in use” when theplayback zone or zone group is playing continuously streaming audiocontent, such as Internet radio that may continue to play untilotherwise stopped, rather than discrete audio items that have playbackdurations. In some embodiments, a playback queue can include Internetradio and/or other streaming audio content items and be “in use” whenthe playback zone or zone group is playing those items.

When playback zones or zone groups are “grouped” or “ungrouped,”playback queues associated with the affected playback zones or zonegroups may be cleared or re-associated. For example, if a first playbackzone including a first playback queue is grouped with a second playbackzone including a second playback queue, the established zone group mayhave an associated playback queue that is initially empty, that containsaudio items from the first playback queue (such as if the secondplayback zone was added to the first playback zone), that contains audioitems from the second playback queue (such as if the first playback zonewas added to the second playback zone), or a combination of audio itemsfrom both the first and second playback queues. Subsequently, if theestablished zone group is ungrouped, the resulting first playback zonemay be re-associated with the previous first playback queue or beassociated with a new playback queue that is empty or contains audioitems from the playback queue associated with the established zone groupbefore the established zone group was ungrouped. Similarly, theresulting second playback zone may be re-associated with the previoussecond playback queue, or be associated with a new playback queue thatis empty, or contains audio items from the playback queue associatedwith the established zone group before the established zone group wasungrouped.

FIG. 6 is a message flow diagram illustrating data exchanges betweendevices of the media playback system 100 (FIGS. 1A-1M).

At step 650 a, the media playback system 100 receives an indication ofselected media content (e.g., one or more songs, albums, playlists,podcasts, videos, stations) via the control device 130 a. The selectedmedia content can comprise, for example, media items stored locally onor more devices (e.g., the audio source 105 of FIG. 1C) connected to themedia playback system and/or media items stored on one or more mediaservice servers (one or more of the remote computing devices 106 of FIG.1B). In response to receiving the indication of the selected mediacontent, the control device 130 a transmits a message 651 a to theplayback device 110 a (FIGS. 1A-1C) to add the selected media content toa playback queue on the playback device 110 a.

At step 650 b, the playback device 110 a receives the message 651 a andadds the selected media content to the playback queue for play back.

At step 650 c, the control device 130 a receives input corresponding toa command to play back the selected media content. In response toreceiving the input corresponding to the command to play back theselected media content, the control device 130 a transmits a message 651b to the playback device 110 a causing the playback device 110 a to playback the selected media content. In response to receiving the message651 b, the playback device 110 a transmits a message 651 c to thecomputing device 106 a requesting the selected media content. Thecomputing device 106 a, in response to receiving the message 651 c,transmits a message 651 d comprising data (e.g., audio data, video data,a URL, a URI) corresponding to the requested media content.

At step 650 d, the playback device 110 a receives the message 651 d withthe data corresponding to the requested media content and plays back theassociated media content.

At step 650 e, the playback device 110 a optionally causes one or moreother devices to play back the selected media content. In one example,the playback device 110 a is one of a bonded zone of two or more players(FIG. 1M). The playback device 110 a can receive the selected mediacontent and transmit all or a portion of the media content to otherdevices in the bonded zone. In another example, the playback device 110a is a coordinator of a group and is configured to transmit and receivetiming information from one or more other devices in the group. Theother one or more devices in the group can receive the selected mediacontent from the computing device 106 a and begin playback of theselected media content in response to a message from the playback device110 a such that all of the devices in the group play back the selectedmedia content in synchrony.

IV. Methods and Systems for Implementing Routines and Operating Modes atPlayback Devices

In some embodiments, routines (also referred to as “scenes”) can be usedto customize and/or modify the behavior of playback devices 110. A usercan select or create a set of routines, or scenes, that cause a playbackdevice 110 a to play back media content in a user-defined manner. Forexample, the user may select a routine that causes the playback device110 a to play back the sound of ocean waves. Further, the user mayindicate a particular user-defined acoustic parameter in which the oceanwaves should be played back, such as by selecting a particularuser-defined volume. Further, in some embodiments, a routine cancontinue execution through the play back of media content. For instance,a routine may be configured to ramp up the volume associated with mediacontent over a five-minute period. Similarly, a routine may beconfigured to dynamically raise the volume associated with media contentin response to ambient noise around one or more playback devices 110.

Additionally, sets of routines may be utilized to customize and/ormodify the behavior of playback devices 110. For example, a particularordered set of routines may be associated with a particular playbackdevice 110 such that the routines are executed in sequential order. Forinstance, each routine within the particular ordered set of routines maybe associated with different media content (e.g., song, tracks, radiostation, playlist, podcast, audiobook). As the playback device finishesone of the current routine, the next routine may execute and cause theplayback device 110 a to play the media content associated with the nextroutine. Alternatively or additionally, a user may also cause theplayback device 110 a to advance to the next routine by initiating atrigger condition, such as by selecting a button.

In some embodiments, a set of routines are used to define, at least inpart, a playback mode. As described herein, a playback mode comprisesone or more routines that define a particular set of behaviorsassociated with a playback device 110 a that is operating in theplayback mode. Further, in some embodiments, the one or more routinesconfigure the user interface 113 of the playback device 110 a toactivate or modify different aspects of the one or more routines. Forexample, the one or more routines may configure a portion of the userinterface 113 that is used to advance between songs to instead advancebetween the one or more routines. As such, when touching the “skipbutton” the one or more routines may cause the playback device 110 a toadvance to the next routine within the one or more routines.

In some embodiments, the playback device 110 a is configured to executetransport commands (e.g., play, previous, next, pause, volume)differently in different modes. The transport commands may be initiatedon a user interface 313 associated with a playback device 110 a or at auser interface 133 associated with a control device 130. For examplewhen operating in a daytime playback mode (also referred to herein as a“default playback mode”), pressing a skip button, or otherwise issuing a“skip” command, causes the playback device 110 a to move betweenindividual tracks in the playback queue. In contrast, in a routine-basedplayback mode (e.g., a sleep playback mode), pressing the skip button,or otherwise issuing a “skip” command, causes the playback device 110 ato move between routines within a set of one or more routines.Similarly, in a daytime playback mode (or default playback mode),pressing a “play” button, or otherwise issuing a play command, causesthe playback device 110 a to start playing a track within a playbackqueue. In contrast, in a routine-based playback mode (e.g., a sleepplayback mode), pressing the play button, or otherwise issuing a “play”command, causes the playback device 110 a to start a routine within aset of one or more routines.

In some embodiments, individual playback modes can customize the actionsassociated with different transport commands (e.g., play, previous,next, pause, volume). The customizations may be defined by one or moreroutines that are associated with the individual playback modes. Forinstance, a particular playback mode may cause the skip command to speedup an aspect of a routine. For example, pressing the skip command maycause media content to play at a faster speed. As an additional example,a particular playback mode may cause the stop command to emit an alarmsound. For example, a particular playback mode may be associated with agame and pushing a stop button on a playback device may cause an alarmto sound as part of the game. One will appreciate that differentplayback modes may cause any number of different actions to beassociated with the transport commands. Further, one will appreciatethat different playback modes may customize the actions caused byinteractions with the user interfaces 313 (such as buttons, knobs,capacitive surfaces, etc.) on playback devices. Accordingly, buttonsthat have specific functions (e.g., play, stop, skip, pause, volume,etc.) within a default playback mode can be repurposed to perform customactions as directed by the particular playback mode.

In some embodiments, multiple different playback modes may be availablefor a user to choose between. For example, the multiple differentplayback modes may comprise a sleep mode, a business playback mode, afitness playback mode, a cooking playback mode, a cleaning playbackmode, or a holiday playback mode. As a further example, the fitnessplayback mode may comprise routines that are created to complement ahigh-intensity interval training workout. For instance, the routines maycause upbeat music to play until a user presses a button on one or moreplayback devices 110. In response to the user pressing the button, acooldown timer may initiate and audibly count down for a user-specifiedamount time. The timer arriving at zero may comprise a trigger conditionthat causes the next routine to begin playing the upbeat music. As such,a user can work out to their desired music, press a button to enter atimed cooldown period, and then begin to work out again when the musicautomatically begins playing. In view of this disclosure, one willappreciate that a user may be able to edit playback modes or createcustom playback modes that are associated with pre-made and/or customroutines.

FIG. 7 is a schematic of a timeline 700 associated with one or moreplayback devices 110 that are shown as operating within two differentplayback modes 710. Specifically, the timeline 700 shows that theassociated playback devices 110 operating within a daytime playback mode710 a and a sleep playback mode 710 b. In some embodiments, the daytimeplayback mode 710 a is considered a default mode of the one or moreplayback devices 110. For example, in the “default mode” a buttonnormally associated with “play” will cause media content to be played.In contrast, when operating within a playback mode, the play button maybe repurposed to perform another function—such as skipping to the nextroutine, which may not be media content. In some embodiments, thedaytime playback mode 710 a is not associated with any routines orscenes.

As described above, the daytime playback mode 710 a may be considered adefault playback mode such that any time period that is not associatedwith a particular playback mode is automatically associated with thedefault playback mode (also referred to as the daytime playback mode 710a). For example, one or more playback devices 110 may be associated witha wake-up playback mode from 6 AM until 8 AM and then again with a sleepplayback mode 710 b from 10 PM until 6 AM. In such a configuration, thetime period from 8 AM until 10 PM may automatically be associated withthe daytime playback mode 710 a.

One will appreciate the depicted timeline 700 is only exemplary of manydifferent possible configurations of playback modes 710. In the depictedembodiment, the timeline 700 depicts the daytime playback mode 710 a asextending from 6 AM until 10 PM. During the daytime playback mode 710 athe user's alarm sounds between 6 AM and 7 PM. The user silences thatalarm before completely waking up. Once awake, the user starts to listento the morning news on one or more playback devices 110. The user mayinitiate the morning news through any number of different means such as,but not limited to: a vocal command to “play news,” a physical userinterface integrated into the one or more playback devices 110, acommand entered into a control device (such as a mobile phone), aroutine that automatically causes the morning news to play at aparticular time of day, or any number of ways described herein.

At some point after listening to the news, the user silences the one ormore playback devices 110. After 6 PM, the user starts to listen toworkout music. As described above with respect to the morning news,there are a number of different ways that the user can start her workoutmusic. After working out, the user may switch to her cooking music whileshe prepares her evening meal. Once she has finished eating, the usermay cause the one or more playback devices 110 to play a local radiostation while she cleans up.

At 10 PM, the one or more playback devices 110 receive a playback modeindication. As used herein, a playback mode indication comprises acommand that causes the one or more playback devices 110 to enter into aplayback mode 710. The playback mode indication may be received from auser, a remote server, a control device, the one or more playbackdevices, or be generated by a trigger condition. For example, theplayback mode indication depicted with respect to the timeline 700comprises a trigger condition in the form of a time-based trigger thatcauses the one or more playback devices 110 to enter the sleep playbackmode 710 b at 10 PM. In some embodiments, one or more of the playbackdevices 110, a control device, or a remote server may be configured todetermine that a trigger condition has occurred. For example, triggerconditions may comprise a particular time, a geolocation of a user, abutton press, a vocal command, a signal from an IoT device, a signalfrom a cloud service, or any other detectable condition or signal.

After receiving the playback mode indication, the one or more playbackdevices 110 operate within the indicated playback mode 710—in thisexample the sleep playback mode 710 b. After initiating operation of thesleep playback mode 710 b, the one or more playback devices 110 access aparticular set of routines that is associated with the sleep playbackmode 710 b. In various different embodiments, the one or more playbackdevices 110 access the particular set of routines from local memory,from a local network device, from a control device, or from a cloudnetwork 102.

The sleep playback mode 710 b depicted in FIG. 7 is associated with oneor more routines that cause the one or more playback devices to playback media content with a user-defined acoustic parameter. Specifically,the sleep playback mode 710 b is associated with a sleep quickstart 1routine 720 a and a sleep quickstart 2 routine 720 b. As used herein a“quickstart routine” or “quickstart” is a type of routine that is set totrigger by some action, such as a button press or control API command. Aquickstart routine provides easy, fast access to specific media content.In some embodiments, there may be a limited number of quickstartroutines that can be set. Additionally, a user-defined acousticparameter may comprise a volume level, a mix level, a balance level, ora media content-specific variable. A media content-specific variableallows a user to specify acoustic attributes that are unique to theparticular media content. For example, the particular media content maycomprise one or more component tracks within the media content that canbe independently adjusted (e.g., track speed, track sound, trackchannel, track balance, and other related attributes). For example, onetrack may comprise the sound of ocean waves. As such, a user canincrease the rhythm of the waves, while the other tracks (e.g., thesound of seagulls and wind) continue to play at the original speed. Theone or more routines also comprise one or more user interfaceinteractions that are configured to cause the one or more playbackdevices 110 to advance between the one or more routines within theparticular set of routines.

In some embodiments, as soon the particular playback mode is initiated,the one or more playback devices 110 will automatically begin to executethe first routine in the particular set of routines. In contrast, insome embodiments, the one or more playback devices 110 will continue toplay back the media content that the one or more playback devices 110were playing prior to the start of the particular playback mode. Forexample, as depicted in FIG. 7 , the local radio station continues toplay past the start of the sleep playback mode 710 b until the user tapspause on a user interface 113 associated with the one or more playbackdevices 110. Once the user taps “play” the first routine of the sleepplayback mode is executed.

FIGS. 8A and 8B are schematic diagrams of a user interface 313 (alsoreferred to as user interface 113) of a playback device 110 a configuredto receive one or more user interface interactions. In some embodiments,the user interface 313 comprises one or more buttons integrated into acontrol surface of the playback device 110. One will appreciate,however, that in additional or alternative embodiments the userinterface may comprise a voice user interface (e.g., a VAS), physicalknobs, a camera, touch screen or surface, or any other means for input.As depicted in FIG. 8A, pressing the play button 800 causes the one ormore playback devices 110 to execute at least one routine from the setof routines. For example, once the user taps a “play” button, sleepquickstart 1 routine 720 a is executed when the playback device 110 a isin sleep mode. In this example, sleep quickstart 1 routine 720 a maycomprise soothing ocean sounds that help the user fall asleep.

User interface elements 810 a, 810 b depict exemplary visual elementsthat may be presented on a control device 130 when the one or moreplayback devices 110 are operating in sleep playback mode. These visualelements may be displayed on a screen on or associated with the playbackdevice 110 or on a controller of the playback device 110. As depicted,pressing the play button within user interface element 810 a causes theplayback device 110 to play ocean sounds. When the user activates a skipor next function, the control device 130 causes the one or more playbackdevices 110 to advance to the sleep quickstart 2 routine 720 b, which inturn causes the one or more playback devices 110 to play white noise.

FIG. 8B depicts the user interface with an ordered set of routines820(a-f). In this depicted example, after receiving an indication of auser interface interaction 830, such as a swipe across, or a selectionof, at least one of the one or more buttons, the playback device 110advances to a particular routine of the one or more routines. Inparticular, in the depicted example, each time a user swipes the buttonsthe one or more playback devices 110 advance to the next routine withinthe ordered set of routines 820(a-f). As such, in some embodiments, theone or more routines associated with a particular playback mode areordered within a set, such that the routines are executed in aparticular order. One will appreciate that the one or more routines maydefine any number of different user interface interactions that can beused to execute, stop, pause, advance, or otherwise interact with theroutines. Further, the ordered set of routines 820(a-f) may comprise anynumber of different types of media content or types of actions performedby the one or more playback devices 110. For instance, one or moreroutines may comprise a dynamic weather report, a game (e.g., a quiz),an interaction with an IoT device (e.g., dimming a light), or any numberof other programmable actions.

FIGS. 9A-15B depict various different embodiments of playback modeinterfaces. In some embodiments, the playback mode interfaces compriseconfiguration interfaces that are used to configure and/or launchdifferent playback modes or routines. In some embodiments, the playbackmode interfaces comprise dashboard interfaces that are used to show astatus of playback devices 110 within a household. The playback modeinterfaces depicted herein are provided for sake of example andexplanation, and do not limit potential additional or alternativeembodiments of interfaces to any particular form or device. Turning nowto specific interfaces, FIGS. 9A and 9B are schematic diagrams ofrelated playback mode interfaces 900 a, 900 b (also referred to hereininterchangeably as “configuration interfaces” or “dashboardinterfaces”). The playback mode interfaces 900 a, 990 b may be displayedon a control device 130 for use in creating or modify routines andplayback modes or a dashboard device for use in viewing and monitoringthe status of playback devices 110 within a household. The depictedplayback mode interfaces 900 a and 900 b are exemplary and can bepresented on any device with a viewable display (e.g., control device530). Additionally, the visual aspects of the playback mode interfaces900 a and 900 b are also exemplary and in some embodiments routines canbe modified and/or created using voice commands without the presence ofa viewable display. As such, the playback mode interfaces may compriseat least one microphone configured to receive voice commands or a userinterface configured to receive physical inputs from a user.

The control device 130 can receive, via a playback mode interface 900 aand 900 b, one or more first user inputs associating a particularroutine (also referred to as a particular “scene”) with a particularplayback mode and associating the particular playback mode with one ormore playback devices. For example, configuration interface 900 adepicts multiple playback device icons 910(a-e) that each represent adifferent playback device 110 (in e.g., speakers) within a particularmedia playback system 100. The depicted playback device icons 910(a-e)are each associated with a playback device name 912, a playback devicemode 914, and a playback device mode status 916. Playback mode interface900 b depicts two different rendered views 940 a, 940 b within theplayback mode interface 900 b. Rendered view 940 a displays to a uservarious sleep quickstarts 950 a, 950 b. If a user selects the “SleepQuickstarts” option 960, the playback mode interface 900 b displays thesecond rendered view 940 b. Within the second rendered view 940 b, auser it able to further customize the sleep quickstarts 950 a, 950 b byselecting the quickstarts individually. A user may also be able tolaunch a sleep quickstart 950 a, 950 b from either playback modeinterfaces 900 a or playback mode interface 900 b. One will appreciate,however, that additional or alternative embodiments may displaydifferent information associated with each playback device 110.

The playback mode interface 900 a also depicts various user-definedacoustic parameters that can be associated with media content. Similaroptions may also be available to the user through playback modeinterface 900 b. For example, a first routine 922 is associated withinstructions that cause a playback setting of one or more playbackdevices 110 to be associated with particular media content, in this casemedia content, or nature sounds, referred to as “Seattle Rainfall.” Theuser-defined acoustic parameters include a user defined volume of “25”and a media content-specific settings relating to the rain speed, inthis case “medium.” Additionally, in some embodiments, the user-definedacoustic parameters also include the individual playback devices 110that are associated with the first routine 922. For example, in thedepicted embodiment, the user has turned on the playback devices modestatus 916 of the playback devices 110 associated with playback deviceicons 910 a, 910 b, and 910 c. As such, the first routine 922 isconfigured to cause the audio content “Seattle Rainfall” to play on theselected playback devices 110.

The playback mode interface 900 a, 900 b also provides the user with theability to associate a particular trigger condition with a particularroutine. For example, in FIG. 9A the user indicated set a triggercondition field 930 for the playback devices 110 to enter sleep mode at9:30 PM. Additionally, the user sets a conditional trigger for theplayback devices 110 to exit sleep mode at 6:30 AM. The triggerconditions define conditions that causes the particular routine to beexecuted or exited. Accordingly, at 9:30 PM a sleep playback mode wouldbe executed at the “Master Bedroom—Mary” playback device, “MasterBedroom—Josh,” playback device, and the “Master Bathroom” playbackdevice. At 6:30 AM the playback devices 110 would exit the sleepplayback mode.

Many different options may be provided to a user relating to triggerconditions. For example, trigger conditions may comprise a particulartime, a geolocation of a user, a button press, a vocal command, a signalfrom an IoT device, a signal from a cloud network 102, or any otherdetectable condition or signal. In some embodiments, a trigger conditionis identified at a server that is remote to the playback device 420(e.g., computing device 106), at the one or more playback devices 110,or at a control device 130. In some embodiments, a user is able toselect and revise one or more trigger conditions associated with aplayback mode or routine. Alternatively, in some embodiments triggerconditions are built into particular playback modes or routines and arenot user adjustable.

For example, a user may desire for one or more playback devices to entera welcome home playback mode whenever the user's geolocation is detectedas returning to her home. The user may have a mobile phone that isassociated with a user account stored in the cloud network 102. Theuser's mobile phone may communicate with the cloud network 102 toindicate the user's current geolocation. When the cloud network 102detects that the user, who was previously not at home, is not travelinghome, the cloud network 102 communicates an instruction that causes theone or more playback devices to enter the welcome home playback mode.The instruction communicated by the cloud network 102 may comprise acurrent geolocation of the user or may comprise a command to enter thewelcome home playback mode.

As such, in some embodiments, the media playback system 100 may processthe geolocation information locally and determine whether to enter thewelcome home playback mode, or the cloud network 102 may process thegeolocation information and directly issue a command that causes themedia playback system 100 to enter the welcome home playback mode.Similarly, other trigger conditions can be processed locally within themedia playback system 100, remotely in the cloud network 102, or in somecombination of the two. In some embodiments, once the user creates ormodifies a routine or playback mode in the playback mode interface 900a, 900 b, the control device 130 transmits, via a communicationinterface, the particular routine to a server (e.g., computing device106) remote from the control device 130.

Additionally, in some embodiments, the trigger condition field 930 mayprovide for options for third-party services or third-party devices toprovide a trigger condition. For instance, a third-party robotic vacuummay be configured to send an indication of a trigger condition wheneverthe robotic vacuum begins vacuuming. In response to receiving theindication of the trigger condition, a routine may cause the one or moreplayback devices 110 to increase their volume to a specified level inorder to drown out the sounds of the robotic vacuum. Further discussionof the process for receiving indications of trigger conditions fromthird parties is provided with respect to FIGS. 16-18 .

Additionally, in some embodiments, the control device 130 can receivethrough the playback mode interface 900 a, 900 b user input associatinga particular routine (e.g., routine 922) with multiple playback devices(e.g., playback device icons 910(a-c) each represent a differentplayback device 110). The routines may configure the playback devices110 associated with the playback device icons 910(a-c) to play one ormore media content files—in the depicted case, “Seattle Rainfall” and“White Noise.” Additionally, one or more media content settings mayconfigure the multiple playback devices to play the one or more mediacontent with a user-defined acoustic parameter. For example, inaccordance with routine 922 a, the playback devices are configured toplay back “Seattle Rainfall” with a rain speed of “medium.”

Further, in some embodiments, the one or more playback devices 110 maybe “bonded” or “merged” to form specified groups, or zones, as describedwith respect to FIGS. 1L through 1M. As described above, bonded playbackdevices may have different playback responsibilities (e.g., channelresponsibilities). Further, with respect to the configuration interfaces900(a-e), a bonded or merged pair of playback devices or a zone ofplayback devices may be represented by a single UI entity (i.e., aplayback device icon 910). Accordingly, after receiving a playback modeindication, the control device 130 can cause one or more playbackdevices within a predefined group, or zone, to operate within theparticular playback mode. In some embodiments, the particular playbackmode may be selected from a set of multiple playback modes.

In some embodiments, the one or more playback devices 110 may beassigned different playback roles in a group such as background,foreground, or ambient. For example, a group of multiple playbackdevices 110 may be configured to play beach sounds. A routine associatedwith the beach sounds may further configure a first subset of the groupof multiple playback devices 110 to play wave sounds and a second subsetof the group of multiple playback devices 110 to play the sounds ofbirds and wind. In some embodiments, a playback mode interface 900 a,900 b may provide a user with the ability to configure the associatedroutine such that the playback devices within the different subsets areselected by the user. For instance, the user may select playback devicesat the front of a room to play the wave sounds and playback devices atthe back of the room to play the bird and wind sounds. The user may alsobe able to customize volume levels, speed levels, and other user-definedacoustic parameters on a subset-level basis. For example, the user mayconfigure the speed of the waves to ramp up over time and the speed ofthe birds and the wind to ramp down over time.

Accordingly, one or more media content settings associated with routinesor scenes may configure at least one playback device selected from agroup of multiple playback devices to play the media content in adifferent manner than at least one other playback device selected fromthe multiple playback devices. For example, one of the playback devicesmay play a different audio channel than the other playback devices. Insome embodiments, a user may be able to further specify differentplayback devices behaviors. For example, a user may specify that aparticular playback device play back media content at a louder volumethan the other playback devices associated with a particular routine.Additionally, a user may specify that a particular playback device go tosleep at a different time than the other playback devices associatedwith a particular routine. For instance, a user may desire that aplayback device immediately adjacent her bed sleep after an hour, whileother playback devices associated with the same routine or scenecontinue to playback the media content.

In some embodiments, the playback mode interface 900 a, 900 b mayprovide a user with an option to set group or room specific triggerconditions. For example, a user may have one or more speakers within theroom of a young child. The user may desire that the child be able toturn the music off but not that the child be able to advance through theroutines. Accordingly, the playback mode interface 900 a, 900 b mayallow a user to set particular user interface inputs as triggerconditions on some playback devices 110, while turning those triggerconditions off or setting different trigger conditions for otherplayback devices 110.

Returning to the playback mode interfaces 900 a,b of FIGS. 9A and 9B,the different exemplary configuration interfaces 900 a, 900 b depictvarious examples of playback modes and routines being associated withone or more playback devices 110. The functionality and descriptionassociated with the playback mode interfaces 900 a and 900 b can also beextended to the playback mode interfaces disclosed and described inFIGS. 10A-15B. The depicted playback mode interfaces 900 a, 900 b areconfigured to allow a user to create a playback modes (e.g., a sleepplayback mode) by adjusting various trigger conditions, routines, anduser-defined acoustic parameters. Once a playback mode is started, theone or more playback devices 110 will react to the defined triggerconditions and respond to the defined routines.

The playback mode interfaces 1000 a, 1000 b of FIGS. 10A and 10Bprovides a user with greater flexibility in associating quickstartroutines with the sleep playback mode. For example, the user has definedquickstart 1 routine 922 a, quickstart 2 routine 922 b, quickstart 3routine 922 c, quickstart 4 routine 922 d, quickstart 5 routine 922 e,and quickstart 6 routine 922 f in relation to the sleep playback mode.In the depicted embodiment, each quickstart is associated with differentmedia content and different user-defined acoustic parameters (e.g.,volume, “rain speed,” “conversation,” “music,” “wind speed,” and “birdvolume.”) Further, a user is able to indicate which playback devices 110should be associated with the one or more quick start routines 922(a-f)by selecting the appropriate playback device icons 910(a-e).Additionally, the playback mode interfaces 1000 a, 1000 b allows a userto arrange the quickstart routines 922(a-c) into a desired sequentialorder.

The playback mode interfaces 1100 a and 1100 b of FIGS. 11A and 11Ballows a user to set a trigger condition field 930 for the sleepplayback mode. The user is also able to indicate which playback devicesshould be associated with the sleep playback mode by selecting theappropriate playback device icons 910(a-e). In this embodiment, the useris also able to associate quickstart routines 922(a-d) with specificplayback devices 110. For example, as shown on rendered view 1110 c ofplayback mode interface 1100 b, a user is able to individually activatedifferent playback devices 110 with a toggle switch and to associatespecific quickstart routines 922(a-d) with individual playback devices110. As depicted, in some embodiments, an inactive quickstart routine922 d may be associated with a toggle switch set to off (as shown inplayback mode interface 1100 a) or may appear grayed-out (as shown inplayback mode interface 1100 c). One will appreciate, however, that anumber of different user interface elements may be utilized to controland configure the respective playback devices and quickstart routines922(a-d). For example, a user may be able to associate a particularquickstart routine with playback device by dragging the quickstartroutine 922 a to an area of the screen associated with a particularplayback devices 110 a (e.g., the Bedroom—Mary playback device).Further, the user is able to set playback device-specific variables suchas a “sleep timer” and whether “adaptive volume” should be active.

Using these playback mode interfaces 1100 a and 1100 b a user is able tocustomize how different subsets of playback devices 110 will behave. Forinstance, a married couple may each have a speaker on their own side oftheir shared bedroom. Using the playback mode interfaces 1100 a and 1100b, each partner may be able to customize how their respective playbackdevice 110 operates within the sleep mode. This allows one or more usersthe ability to individually control playback devices with respect to theone or more routines 922(a-d). For instance, one partner may wish tohave a speaker that is next to their bed sleep sooner than the otherpartner's speaker that is across the room. As such playback modeinterfaces 1100 a and 1100 b, display a setting for the one or moreuser-defined acoustic parameters that causes at least one playbackdevice (represented by playback device icon 910 a) within the group ofthe one or more playback devices (represented by playback device icons910 a-910 e) to play back the particular media content in a differentmanner than another playback device of the group of the one or moreplayback devices. One will appreciate that additional or alternativeembodiments may display configurations for the volume, balance, fade,and other acoustic parameters of each speaker.

Playback mode interfaces 1100 a and 1100 b also provide a user with theability to enable or disable individual routines 922(a-d) within thesleep playback mode. For example, in playback mode interfaces 1100 a and1100 b routine 922 d has been disabled. In some embodiments, theroutines 922(a-d) are executed as an ordered set. As such, the firstroutine 922 a will be executed, followed by the second routine 922 b,and then followed by the third routine 922 c. Because the fourth routine922 d has been disabled, the one or more playback devices 110 will stopexecuting the one or more routines after the third routine 922 ccompletes execution or the ordered set of routines will start over withthe first routine 922 a.

The playback mode interfaces 1200 a and 1200 b of FIG. 12A and FIG. 12Balso allows a user to set a trigger condition field 930 for the sleepplayback mode. The user is also able to associate sets of individualquickstart routines 1210(a-c) with individual playback devices. In thisexemplary playback mode interface 1200 a, a user is able to modify orcreate a quickstart routine within a routine editing space 1220 of theinterface. When a user selects a particular routine from the sets ofquickstart routines 1210(a-c), the routine editing space 1220 ispopulated with information from the selected routine. The user can thenmodify or create a routine for association with the particular playbackdevice 110. These playback mode interfaces 1200 a and 1200 b allow auser to associate specific routines, and in turn behaviors, withindividual playback devices 110 when the playback devices 110 are insleep playback mode.

In some embodiments, playback mode interface 1200 b comprises threedifferent rendered views 1230(a-c). Rendered view 1230 a provides a userwith options for executing and accessing the different sets ofquickstart routines 1210 a and 1210 b. Rendered view 1230 b displaysicons associated with individual playback device 910(a-c). The renderedview 1200 b also indicates a number of quickstart routines that areassociated with each playback device. If a user selects the iconassociated with individual playback device 910 a (i.e., “Bedroom—Mary”),the third rendered view 1230 c is displayed.

Rendered view 1230 c displays the set of quickstart routines 1210 aassociated with the playback device, “Bedroom—Mary.” A user is providedwith the ability to select each individual quickstart routine and changethe media content, volume level, and various other settings associatedwith the quickstart routine. Additionally, the rendered view 1230 cprovides a user with the ability to interact with a trigger conditionfield 930. In the depicted embodiment, the trigger condition field 930provides the user with the ability to set a time when the associateplayback mode is entered and when it is exited. Other settings mayprovide a user with the ability to configure trigger conditions that arenot related to time.

The playback mode interfaces 1300 a and 1300 b of FIGS. 13A and 13Ballow a user to set personalized quickstart routines 922(a-c) that canbe executed within the sleep playback mode. In playback mode interfaces1300 a and 1300 b, each quickstart routine 922(a-c) is associated withthe specific playback devices that it will be executed on (as shown bythe playback icons 910(a-c)). As the control device 130 or playbackdevice 110 received user interactions the routines advance sequentiallythrough the routines 922 a, 922 b, and 922 c.

For example, playback mode interfaces 1300 a and 1300 b can display arepresentation of a first playback mode (i.e., the sleep playback mode)and a set of routines 922(a-c) associated with the first playback mode.The playback mode interfaces 1300 a and 1300 b can then receive aselection of the first routine 922 a, and in response, display playbacksettings associated with the first routine 922 a. The playback settingsmay comprise a name 1310 of the first routine 922 a and particular mediacontent 1320 associated with the first routine 922 a.

The playback mode interfaces 1300 a and 1300 b may then receive a firstuser input changing the particular media content from a first mediacontent to a second media content. For example, a user may change from“Seattle Rainfall” to “Ocean Sounds.” After receiving the first userinput changing the particular media content, the control device 130transmits, via a communication interface, a first message to update theplayback settings associated with the first routine. The first messagemay be transmitted to one or more playback devices and/or a cloudnetwork 102.

After transmitting the first message, the control device 130 receivesone or more user inputs to select a playback device 110 and/or toinitiate the first routine. In response to receiving the one or moreuser inputs, the control device 130 transmits, via the communicationinterface, a second message to initiate the first routine on the firstplayback device 110. The corresponding one or more playback devices 110would then play back the media content “Ocean Sounds.” Once a user hasfinished modifying or creating the routines, or scenes, the controldevice 130 may communicate the routines to a remote server for storageand/or further processing.

For example, a user may press a skip button on the one or more playbackdevices 110. The skip button press may constitution a trigger condition.In response to the skip button press, the playback device may executethe “skip” command locally, communicate a “skip” universal plug and play(“uPNP”) command through the local network, through an API directly tothe control device 130 via a network, or through an API to a cloudnetwork 102 or to the control device 130. After receiving the indicationof the trigger condition, the control device 130 may communicate theexecutable instructions to the playback device 110 for final executionor may communicate through an API to the playback device 110 and causethe playback device to act in a manner defined by the executableinstructions.

A control device 130 may then receive one or more second user inputs toactivate the particular routine. For example, the control device 130 mayreceive an indication that a user has pressed a start button that isassociated with a first routine within a particular playback mode. Afterreceiving the one or more second user inputs, the control device 130 maytransmit a message that causes the appropriate playback devices 110 toplayback the particular media content that is defined by the one or moreroutines in accordance with the one or more media content settings.

FIG. 14 shows a schematic diagram of another playback mode userinterface 1400. In some embodiments, the playback mode user interface1400 may be rendered on a control device 130, such as a smartphone.Rendered view 1410 comprises a prompt 1430 to a user to enter a sleepplayback mode. The prompt 1400 may be generated based upon an occurrenceof a trigger condition. For example, the user may have previouslyindicated that the sleep playback mode should begin at 10 PM. Thecontrol device 130 may determine that the time is 10 PM and in responsedisplay prompt 1430 to the user to enter the sleep playback mode. Insome embodiments, the prompt 1430 is only displayed if a user isinteracting with a control device 130 during the occurrence of thetrigger condition. Otherwise, the playback mode may automaticallyactivate based upon the occurrence of the trigger condition.

In response to seeing the prompt, a user may activate the sleep playbackmode by tapping the prompt 1400. Additionally or alternatively, the usermay activate the sleep playback mode by swiping down (as indicated byarrow 1450) on the “My Sonos” page 1440. In contrast, the user maydismiss the prompt and avoid activating the sleep playback mode byswiping up in a direction opposite of arrow 1450. One will appreciatethat the user interface interactions described above are provided forthe sake of example and explanation. Additional or alternativeinteractions may be used to activate a playback mode.

Rendered view 1420 depicts a playback mode user interface 1400 thatdisplays configuration information about a playback mode. Rendered view1420 may be displayed in response to a user activating the sleepplayback mode in rendered view 1410. Rendered view 1420 includes asettings portion 1460 that allows a user to adjust trigger conditionsassociated with the sleep playback mode and a toggle to activate ordeactivate the sleep playback mode. Rendered view 1420 also displaysicons associated with each quickstart routine 1470 a, 1470 b within thesleep playback mode. In some embodiments, a user can individuallyactivate a particular quickstart routine 1470 a, 1470 b by selecting thequickstart routine in rendered view 1420. Additionally or alternatively,a user may be able to configure a quickstart routine 1470 a, 1470 b byselecting the quickstart routine in rendered view 1420.

FIG. 15A and FIG. 15B show a schematic diagram of another playback modeuser interface 1500. Rendered view 1510 comprises a browse page thatallows a user to select between a number of different services andplayback device experiences. One of the listed experiences, comprises a“Sonos Sleep” experience 1512 which is associated with a sleep playbackmode.

Upon selecting the “Sonos Sleep” experience 1512, rendered view 1520 isdisplayed to the user. Rendered view 1520 comprises a “Nighttime Mode”portion 1522, a “Quickstarts” portion 1524, and a “Wake Alarms” portion1526. In the depicted embodiment, rendered view 1520 also includesvarious media content options 1528 for a user to access. The depictedNighttime Mode” portion 1522 displays information about the triggerconditions associated with the sleep playback mode (i.e., “9:00 PM-6:00AM”) and information about the rooms that are affected by the sleepplayback mode (i.e., “5 Rooms”). The “Quickstarts” portion 1524 displaysinformation about the quickstart routines associated with the sleepplayback mode (i.e., “5 Quickstarts”). The “Wake Alarms” portion 1526displays information about the alarms associated with the sleep playbackmode (i.e., “6 Alarms”).

If a user selects the “Nighttime Mode” portion 1522, rendered view 1530is displayed. Rendered page 1530 displays a visual depiction of aplayback device 110 a and a visual depiction of a user interaction 1532on the playback device 110 a. The user interaction 1532 may be displayedto indicate to a user that performing the displayed user interaction1532 on a playback device 110 a causes the sleep playback mode toadvance between quickstart routines (e.g., a swipe across the top of theplayback device). In some embodiments, the visual depiction of theplayback device 110 a is adjusted to match a particular playback device110 that the user owns, has most recently interacted with, is mostcommonly interacted with within the sleep playback mode, or is otherwiseassociated with the user's current actions.

Rendered view 1530 provides a settings portion 1534 that allows a userto toggle on or off the “Nighttime Mode” (also referred to herein as a“sleep playback mode”), adjust the rooms that are associated with thesleep playback mode, and/or adjust the trigger conditions associatedwith the sleep playback mode (e.g., in this case the enter time of 9:00PM and the exit time of 6:00 AM). Using these settings, a user cancustomize the playback devices that are associated with a playback mode(in the depicted embodiment, on a per-room basis) and the triggerconditions that affect the playback mode.

Returning to rendered view 1520, if a user selects the “Quickstarts”portion 1524, rendered view 1540 of FIG. 15B is displayed. Rendered view1540 displays a list of quickstart routines 1542(a-d) that areassociated with the sleep playback mode. Rendered view 1540 alsodisplays an option for adding quickstarts 1544. In some embodiments,selecting a particular quickstart routine from the list of quickstartroutines 1542(a-d) causes the quickstart routine to be executed. In someembodiments, selecting a particular quickstart routine from the list ofquickstart routines 1542(a-d) causes a user interface to displaysettings and options associated with the quickstart routine. In someembodiments, a first type of interaction with a particular quickstartroutine causes the particular quickstart routine to be executed, while asecond type of interaction with a particular quickstart routine causes auser interface to display settings and options associated with thequickstart routine. For example, the first type of interaction maycomprise a tap on a touch interface while the second type of interactionmay comprise a long press.

Returning again to rendered view 1530, if a user selects the “WakeAlarms” portion 1526, rendered view 1550 of FIG. 15B is displayed.Rendered view 1540 displays various trigger conditions 1552 in the formof alarms that are associated with the sleep playback mode. Each of thedepicted trigger conditions also displays information relating to thefrequency of the trigger condition, the speaker(s) associated with eachindividual trigger condition, and the media content associated with eachtrigger condition. As depicted, in some embodiments, a single playbackmode can be associated with multiple different trigger conditions thatcause different subsets of playback devices to behave independently anddifferently from each other. For example, in the depicted playback modeevery day at 6:00 AM one speaker will playback “Sports Radio” mediacontent, and then at 6:30 AM two speakers will playback “Daily News”media content. In some embodiments, selecting a particular triggercondition within rendered view 1530 allows a user to change the settingsassociated with the trigger condition.

FIG. 16 is schematic diagram of media playback system 100 incommunication with cloud services 1600, 1614. In some embodiments, cloudnetwork 102 comprises cloud services 1600, 1614. The depicted embodimentcomprises a control device 130, a playback device 110, a routine service1600, and a playback device service 1614. The control device 130 may bewithin the same local area network as the playback device 110 or remoteto the playback device 110.

The playback device service 1614 provides network services for playbackdevices 110 and control devices 130 within a media playback system 100.The playback device service 1614 may be executed on a remote serverand/or executed by local devices, such as control devices 130 andplayback devices 110. For example, in some embodiments, a particularplayback device 110 a within a group of playback devices 110 may bedesignated as a “group coordinator.” The group coordinator is taskedwith receiving commands directed towards the group of playback devices110 and communicating commands to group members. For example, the groupcoordinator may receive a command that is configured to cause a subsetof playback devices within the group of playback devices 110 to playbackparticular media content. After receiving the command, the groupcoordinator sends out the commands to the subset of playback devicesover the local area network. As an additional example, a user may tap avolume up button on a particular group member of the group of playbackdevices 110. The particular group member sends the volume up commandinstruction to the group coordinator over the local area network. Inresponse, the group coordinator increases volume up for itself and sendsout an instruction, over the local area network, to all group members toincrease volume. In some embodiments, playback devices and controldevices may belong to common group, and either a playback device or acontrol device can function as a group coordinator.

In some embodiments the playback device service 1614 comprises localnetwork services such as uPNP or other local network APIs. The playbackdevice service 1614 may communicate commands and information betweenplayback devices 110 and control devices 130. For instance, a particulartrigger condition may comprise user interaction with a control surfaceon a playback device 110 a. The playback device 110 a may be bonded toother playback devices and/or a member of a zone, or group. In responseto the user interaction, the playback device 110 a communicates with theplayback device service 1614 which communicates to any other bondedplayback devices or playback devices 110 within the same zone or group.

In some embodiment, routines are decoded by a routine decoder 1602running at the routine service 1600. The routine decoder 1602 maycomprise purpose-built hardware and/or executable software that isconfigured to translate the routines from a first form to a second form.For example, the routine decoder 1602 may translate inputs provided by auser in a configuration interface 900 into a routine that is at leastpartially executable. In some embodiment, variables are inserted intothe partially decoded routine at the time of translation or at someother time after the routine is partially decoded. The routine decoder1602 may generate instructions that are executable at a control device130, at a routine service 1600, at a playback device 110, at a playbackdevice service 1614 or at some other device within a media playbacksystem 100. In some embodiments, the decoding is stateless and utilizesthe routines database 1604 for base definitions and a hardcoded mappingto the commands that are executable at the one or more playback devices110. As used herein, unless specified otherwise, a “routine” refers toroutines that have not been encoded, routines that have been encoded,and routines that have been partially encoded.

In the embodiment depicted in FIG. 16 , the one or more routines areexecuted 1620 by one or more processors at the playback device 110. Theplayback device 110 may receive a routine trigger 1622 from a controldevice 130, from the playback device service 1614, through directinteraction with the playback device 110 itself, or from the routineservice 1600. One or more playback devices 110 may also comprise adatabase of decoded routine instructions 1624.

In some embodiments, each playback device 110 within a media playbacksystem 100 comprise the database of decoded routine instructions 1624.In contrast, in some embodiments only a portion of the playback devices110 within the media playback system 100 comprise the database ofdecoded routine instructions 1624. For example, in some embodiments, oneor more playback devices 110 function as caches for other playbackdevices 110 within the media playback system 100. For example,‘RHTTPCache’ may be utilized for edge-cache management. In such aconfiguration the playback device service 1614 functions to communicateroutines between the playback devices 110 that do not comprise thedatabase of decoded routine instructions 1624. Further, in someembodiments, the routines are executed by the one or more playbackdevices 110 that comprise the database of decoded routine instructions1624. Those playback devices 110 then communicate commands through theplayback device service 1614 directly to the other playback devices 110to cause them to perform the commands from the routines.

In some embodiments, the routine definitions are stored in the routineservices 1600 cloud network. In this embodiment, the routines are notexecuted directly by the routine services 1600 cloud network, nor arethe routines accessed directly by the playback devices 110. Instead, theroutines are decoded by the routine decoder 1602 into an intermediateroutine comprising an executable instruction or a pointer to anexecutable instruction stored at the playback device 110 and a datastructure, such as a JSON data structure, representing the executableinstruction's parameters. This routine decoder 1602 may then communicatethe decoded routine (i.e., the intermediate routine) to one playbackdevice 110 a. The playback device 110 a may then store the decodedroutine within the database of decoded routine instructions 1624 andcommunicate, through the playback device service 1614, the decodedroutine to other playback devices 110 within the media playback system100.

In some embodiments, the routine service 1600 serves as the source oftruth for the routines within a media playback system 100. As such insome embodiments, the playback devices 110 and/or the control devices130 communicate with the routine service 1600 to verify that they havethe most up-to-date routines. In response, the routine service 1600 maycommunicate a single hash of all the decoded routines that areassociated with a given media playback system to the requesting device.For instance, the routine service 1600 may generate a new hash of all ofthe decoded routines stored within its routines database 1604 for agiven media playback system 100. When a device associated with thatmedia playback system 100 queries the routine service 1600, the routineservice 1600 communicates the hash to the device. The device thencompares the received hash to a hash that the device generated for theroutines stored within the database of decoded routine instructions1624. If the hashes do not match, the device requests updated routinesfrom the routine service 1600.

In contrast, in some embodiments, the routine service 1600 generates aunique hash for each decoded routine that it sends to a media playbacksystem 100. The unique hashes are stored in the routines database 1604with the routines. The routine service 1600 may communicate these hashesto a device (e.g., playback device) within a media playback system 100.The device can then compare hashes of routines that are stored withinthe database of decoded routines instructions 1624 with the receivedhashes. If any hashes do not match, the playback devices 110 request theroutines associated with the mismatched hashes.

In some embodiments, the playback devices 110 and/or control devices 130are configured to periodically query the routine service 1600 to verifythe status of their routines. Additionally or alternatively, in someembodiments, the routine services 1600 is configured to send anotification to the playback devices 110 and/or control devices 130 whenan update occurs within the routines database 1604.

Additionally, in some embodiments, prior to executing a routine,playback devices 110 are configured to first verify the status of theroutines stored within the database of decoded routines instructions1624. If the playback devices 110 are not able to connect to the routineservice 1600, the playback devices 110 may query other devices withinthe media playback system 100. The other devices may communicate one ormore hashes associated with the routines that they have respectivelystored. If the hashes match, the playback devices 110 may proceed withexecuting the routine. Additionally or alternatively, if the playbackdevices 110 are not able to contact the routine services 1600, theplayback devices 110 may communicate a message to a user that theroutines are not available.

As discussed above, in some embodiments, one or more playback devices110 implement local-area network cache for the routines. In someembodiments, a control device 130 may request updates for routines fromthe cache that is implemented by the one or more playback devices 110.The cache may comprise data stored within the database of decodedroutine instructions 1624.

FIG. 17A is a message flow diagram of a media playback system 100 incommunication with a cloud service as depicted in FIG. 16 . FIG. 17Adepicts initial communications between a control device 130, a routineservice 1600, and one or more playback devices 110 within a mediaplayback system 100. An initial communication 1700 comprises a controldevice 130 requesting a list of playback modes or routines (alsoreferred to as scenes) from the decoded routines database 1624 (alsoreferred to as the “database of decoded routines instructions 1624”) atthe one or more playback devices 110.

In some embodiments, communication 1700 comprises an identificationassociated (e.g., account ID, user ID, household ID, system ID) with theparticular playback system 100 and a request for a “RoutlineList” thatis associated with the identification. In some embodiments, each routineis associated with its own routine ID that can be used within a playbacksystem 100 to track and identify specific routines. For example, aplayback device 110 may request an entire list of routines associatedwith a particular user or household by communication a user ID orhousehold ID to routines service 1600. Similarly, a playback device 110may be able to request a single routine from the routines service 1600by communicating a routine ID associated with the desired routine. Insome embodiments, to request a particular routine, a playback device 110communications a user ID or a household ID along with the routine ID tothe routine service 1600. The routine service 1600 uses the user ID orhousehold ID to identify the correct set of routines, and then uses theroutine ID to select the correct routine. Additionally or alternatively,in some embodiments, communication 1700 comprises an identificationassociated with the particular playback system 100, a request for a“RoutlineList” that is associated with the identification, and a “Type”variable that indicates the type of routines that are being requested.For instance, the particular playback system 100 may be associated withmultiple different users, each with their own routines. Each user may berepresented by a different “Type” variable that allows communication1700 to request the specific routines associated with a particular user.The “Type” variable may also be associated with sets of routines forspecific zones, groups, geographic locations, playback deviceconfigurations (e.g., bonded pairs, home theater system, etc.), usagecontext (e.g., commercial, business, hotel, restaurant), and other typesof groupings.

In response to communication 1700, the one or more playback devices 110send a communication 1702 to the routine service 1600 to request thecurrent routines stored by the routine services 1600 within the routinedatabase 1604. As explained above, communication 1702 may be requestinga verification, such as a hash, to verify that the routines stored inthe decoded routines database 1624 are up-to-date. Additionally oralternatively, communication 1702 may be requesting that the routineservice 1600 communicate all or a portion of the routines in theroutines database 1604 to the one or more playback devices 110.

In response to communication 1702, the routine service 1600 sendscommunication 1704 to the one or more playback devices 110. In the casethat communication 1704 comprises a validation, such as a hash, theplayback devices 110 verifies that the routines stored in the decodedroutines database 1624 are up-to-date. If the routines are determined tonot be up-to-date, the one or more playback devices 110 request thenecessary routines in order to update the routines stored within thedecoded routines database 1624. In the case that communication 1704comprises decoded routines, the one or more playback devices 110 storethe decoded routines within the decoded routines database 1624.

Additionally, the one or more playback devices 110 send communication1706 to the control devices. In some embodiments, communication 1624comprises descriptions and/or names of the routines but does not includeexecutable instructions. In contrast, in some embodiments, communication1624 comprises the decoded routines with their associated executableinstructions.

FIG. 17B depicts communications between a control device 130, a routineservice 1600, and one or more playback devices 110 related to creatingor editing a routine within a media playback system 100. Communication1710 is generated by the control device 130 in response to a userediting or creating a routine. The process for editing or creatingroutines is described above with respect to FIGS. 9A-9D.

As an example, a user may provide the following intents while creatingor editing a routine on the control device 130: (1) Set initial volumeto 20, (2) Start playing Sleep Playback Mode: The Neighbor's Dog FinallyShut Up, (3) Ramp volume to 5 over the next 30 minutes, and (4) Stopafter 60 minutes (from when content playback started). The controldevice 130 maps these user intents to a data structure that iscommunicable within the playback system 100. For example, the controldevice 130 may generate a JSON data structure in the following form:{“id”: <something generated>, “contentUri”:“x-sonosapi-radio:sonos%3a1234”, “initialVol”: 20, “rampToVol”: 5,“rampToVolOverTime”: 30, “duration”: 60}.

Communication 1710 is sent to the playback device 110 for initialstorage in the decoded routines database 1624. In some embodiments, anewly created or modified routine has not yet been decoded, so the newlycreated or modified routine is stored at the playback device 110 untildecoding is complete.

After receiving communication 1710, the one or more playback devices 110send communication 1712 to the routine service 1600. Communication 1712may comprise the routine or a description of the routine as provided bythe control devices 130. For example, communication 1712 may comprisethe JSON structure described above, the user intents described above, orsome other data structure describing or configured to implement the userintents. In some embodiments, the control device 130 may furtherconfigure the data structure received in communication 1710 beforesending it to the routines service 1600. For example, the control device130 may be a group coordinator for a group of playback devices. Thecontrol device 130 may add information to the data structure relating toother group members, such as bonded playback devices 110.

Message 1714 comprises an internal message within the routines service1600. In particular, message 1714 is sent by the routine services 1600to the routine decoder 1602 for decoding. During decoding, the routinesservice 1600 may process the received data structure and add commandsand information specific to the playback system 100 that will beexecuting the routine. For example, routine services 1600 may addinformation relating to groups, group coordinators, bonded playbackdevices, and other similar information to the routine.

In some embodiments, the decoding is stateless and utilizes the routinesdatabase 1604 for base definitions and a hardcoded mapping to thecommands that are executable at the one or more playback devices 110.Accordingly, the routines services 1600 may decode the routine byanalyzing the data structure and mapping information within the datastructure to commands within the routines database 1604. For instance,the data structure may comprise an entry of ““rampToVolOverTime”: 30”.The routines service 1600 may map the data entry “rampToVolOverTime” toa particular command or set of commands for adjusting volume at one ormore playback devices 110 over time. The routines service 1600 mayfurther map the variable “30” to the same particular command or set ofcommands. As such, in some embodiments, the routines services 1600decoding function comprises mapping information within the datastructure received in communication 1712 to commands and variablesstored within the routines database 1604 and generating a resultingroutine that is executable at a playback device 110.

Once the routine has been transformed into a decoded routine, theroutine service 1600 sends communication 1716 to the playback device.Communication 1716 may comprise the decoded routine. In someembodiments, the decoded routine comprises an ordered list of commandsthat are executable by one or more playback devices 110. For example,the decoded routine may comprise an ordered list of (1) a command to seta particular volume, (2) specific content to play, (3) a command to rampvolume, (4) a command to load a particular queue from the cloud. In anadditional or alternative embodiment, the decoded routine may compriseexecutable code that is directly executable by one or more playbackdevices.

After receiving communication 1716, the one or more playback devices 110stores the decoded routine within the decoded routines database 1624.The one or more playback devices 110 may also delete the newly createdor modified routine that had been received in message 1710.

Message 1718 comprise an internal communication with the one or moreplayback devices 110. In particular, after receiving the decoded routinethe one or more playback devices 110 generate a file to be shared withina local cache or to be shared with other playback devices 110 and/orcontrol devices 130 within the media playback system 100. The generatedfile may be communicated through the one or more playback devices 110pushing the updated file to the other playback devices 110 and/orcontrol devices 130 or the other playback devices 110 and/or controldevices 130 may query the one or more playback devices 110 for the file.Additional details regarding caching and sharing data within playbacksystem 100 can be found, for example, in U.S. Pat. No. 10,747,493, whichwas incorporated by reference above.

In view of the above, one of skill in the art will appreciate that insome embodiments the control device 130 may send communication 1710directly to the routines service 1600. The routines service 1600 maythen decode 1714 the received routine and communicate the executableroutine 1716 to the playback devices 110.

FIG. 17C depicts communications between a control device 130, a routineservice 1600, and one or more playback devices 110 in response todetecting a trigger condition within a media playback system 100. Inthis embodiment, control device 130 generates communication 1720 inresponse to detecting a trigger condition. However, in view of thedisclosure, one will appreciate that this is merely exemplary and thattrigger conditions can be detected by the routine service 1600 or by theone or more playback devices 110. Communication 1720 is sent to theroutines trigger function 1622 within the one or more playback devices110.

The routines trigger function 1622 associates the detected triggercondition with a particular routine. In some embodiments, the particularroutine comprises a routine associated with a playback mode, which whenexecuted causes the one or more playback devices 110 to enter theplayback mode. Additionally, in some embodiments, the routines triggerfunction 1622 accesses a list that associates different triggerfunctions with different routines.

The routine trigger function 1622 sends communication 1722 to theroutines execution function 1620. Communication 1722 may comprise anidentifier for the routine that is associated with the detected triggercondition. After receiving communication 1722, the routines executionfunction 1620 sends communication 1724 to the decoded routines database1624. Communication 1722 may comprise an identifier for the desiredroutine. After receiving communication 1724, the decoded routinesdatabase 1624 sends the decoded routine to the routines executionfunction 1620 within communication 1726.

After receiving the communication 1726, the routine execution function1620 sends communication 1728 to the routine service 1600. Communication1728 may comprise instructions that the particular routine has beenexecuted. Communication 1728 may allow third-party devices to respond tothe execution of routines within the media playback system 100. Forexample, third-party devices may also be in communication, through anAPI, with the routine service 1600. Third-party devices may be able toregister with the routine service 1600 in relation to particularroutines. For instance, a user may be able to dim her bedroom lightswith a routine. When the routine was executed by the routines executionfunction 1620, message 1028 would communicate the execution of theroutine to the routine service 1600. Software associated with thethird-party light system within the user's room would then receive anotification that the routine had been executed. In response, thethird-party light system could cause the lights in the user's bedroom todim.

After sending message 1728, the routines execution function 1620performs a variable substitution in message 1730. Specifically, thedecoded routines stored in the decoded routines database 1624 may beconfigured to allow for variable substitution by the executing one ormore playback devices 110. The variable substitution may relate tovariables that are local to the one or more playback devices 110, suchas configurations of the one or more playback devices 110 and/orconfigurations of the media playback system 100.

Message 1732 represents the execution of the decoded routine by theroutines execution function 1620. Once execution has completed, theroutines execution function 1620 communicates message 1734 to theroutines service 1600. Message 1734 comprises a message to the routineservice 1600 that the execution of the particular routine has completed.Similar to message 1728, this information may be utilized by third-partydevices to integrate with the media playback system 100. For instance,upon receiving a notification that the particular routine has completed,the third-party light system may cause the user's bedroom lights toreturn to their original brightness level.

FIG. 18 shows a schematic diagram of a media playback system where theroutines are executed by the routine service 1600. In some embodiments,the one or more playback devices 110 comprise a routines triggerfunction 1622 that detect the occurrence of a trigger condition at theone or more playback devices 110. For example, the routine triggerfunction 1622 can detect when a user interacts with a user interface atthe one or more playback devices 110 in a way that triggers a routine.

When a trigger condition is detected by the one or more playback devices110 or by the control device 130, the trigger condition is communicatedto the routine service 1600 for processing. Once a trigger condition isreceived, the routine service 1600 identifies the associated routine inthe routines database 1604. The routines execution function 1800 thenexecutes the routines directly within the routine service 1600. Commandsthat are related to the routine are issued by the routine service 1600directly to the one or more playback devices 110 or to the playbackdevice service 1614, which then communicates the commands to the one ormore playback devices 110. Upon receiving and executing the commands,the one or more playback devices 110 store metadata related to theroutine in a routine metadata database 1810. One will appreciate that inthis embodiment, the processing power used to execute the routines ishosted at the routine service 1600, which may comprise one or moreservers. As such, the one or more playback devices 110 are protectedfrom a potentially heavy processing load that may be associated withexecuting routines locally.

In some embodiments, the routine execution function 1620, 1800 may behosted by the control device 130. The control device 130 may thenexecute one or more routines and communicate commands directly to theone or more playback devices 110 and/or routine service 1600.Additionally or alternatively, once a user has finished modifying orcreating the routines, or scenes, the control device 130 may communicatethe routines to a remote server for storage and/or further processing.In some embodiments, the one or more routines are executed at least inpart by the one or more playback devices 110, at least in part by thecontrol device 130, or at least in part by server that is remote to thecontrol device. For instance, the control device 130 may be configuredto generate executable instructions from the routines by at leastpartially decoding the routines using at least one processor at thecontrol device 130. Further, the control device 130 may be configured tocommunicate the executable instructions (also referred to herein at“decoded routines” or “intermediate routine”) to the appropriateplayback device 110 in response to receiving an indication of a triggercondition.

FIG. 19 shows a flow diagram 1900 for operating a playback device 110within a playback mode. At step 1910 the playback device 110 receives aplayback mode indication. At step 1920, after receiving a playback modeindication, the playback device 110 is caused to operate within aparticular playback mode. FIGS. 8A and 8B, among other portions of thisdisclosure, depict a playback device 110 operating within a particularplayback mode.

At step 1930 after initiating operation of the particular playback mode,the playback device 110 accesses a particular set of routines that isassociated with the particular playback mode. The particular set ofroutines are configured such that when they are executed, they cause theplayback device to play back particular media content with a particularuser-defined acoustic parameter. Additionally, the particular set ofroutines are configured such that when they are executed, they configurethe playback device to advance between one or more routines within theparticular set of routines in response to one or more user interfaceinteractions. For example, FIGS. 8A and 8B depicts an ordered set ofroutines 820(a-f) that may cause the playback devices 110 to play mediacontent. Additionally, FIGS. 8A and 8B depict a user interfaceinteraction 830 that causes the playback device 110 to advance betweendifferent routines.

At step 1940, the playback device 110 receives the one or more userinterface interactions at a user interface associated with the playbackdevice 110. For example, in FIG. 8B the playback device 110 receives theone or more user interface interactions 830 at a user interface (e.g.,the control surface 313) in the form of a button swipe.

At step 1950, the playback device 110 executes at least one routineselected from the particular set of routines. In some embodiments, theplayback device 110 will sequentially execute each routine within anordered set of routines. Additionally, or alternatively, the controldevice may receive an additional user interface interaction which causesthe playback device 110 to advance sequentially to the next routinewithin the ordered set of routines.

FIG. 20 shows a flow diagram 2000 for configuring a playback mode at acontrol device 130. At step 162010, the control device 130 receives, viaa configuration interface 900, one or more first user inputs associatinga particular routine with a particular playback mode and associating theparticular playback mode with one or more playback devices 110. Forexample, FIGS. 9A-9E depict various different configuration interfaces900(a-e) that illustrate different examples of associating routines withplayback modes and playback modes with playback devices 110.

At step 2020, the control device 130 receives an indication of aparticular media content to associate with the particular routine. Forexample, in FIG. 9A a first routine 922 a is associated with the mediacontent of “Seattle Rainfall.” At step 2030, the control device 130receive one or more user-defined acoustic parameters for the particularmedia content. The one or more user-defined acoustic parameters areconfigured to cause the one or more playback devices to play back theparticular media content in accordance with the one or more user-definedacoustic parameters. For example, in FIG. 9A the configuration interface900 a provides options for a user to set one or more exemplaryuser-defined acoustic parameters related to the “volume” and “rainspeed” of the “Seattle Rainfall” media content.

At step 2040, the control device 130 associates a particular triggercondition with the particular routine. The particular trigger conditioncomprises a condition that causes the particular routine to be executed.For example, in FIG. 9A a trigger condition field 930 a allows a user toset an alarm that will cause the triggering of the first routine withinthe playback mode. One will appreciate, however, that the setting of thealarm is merely exemplary and that additional or alternative embodimentsmay allow a user to set a particular button press, a geolocation, or anumber of other trigger conditions.

At step 2050, the control device 130 transmits, via the communicationinterface, the particular routine to a server remote from the controldevice 130. For example, in FIG. 17B the control device 130 communicatesroutines to the routine services 1600. At step 2060, the control device130 receives one or more second user inputs to activate the particularroutine. For example, in FIG. 8B the one or more playback devices 110receives the one or more user interface interactions 830 (also referredto herein as “user interface inputs”) at a user interface (e.g., thecontrol surface 313) in the form of a button swipe.

After receiving the one or more second user inputs, at step 2070 thecontrol device 130 transmits a message that causes the one or moreplayback devices 110 to play back the particular media content accordingto the one or more user-defined acoustic parameters. For example, inFIGS. 10-12 different examples are depicted of the control device 130communicating messages that cause the one or more playback devices 110to play back the particular media content according to the one or moreuser-defined acoustic parameters.

V. Conclusion

The above discussions relating to playback devices, controller devices,playback zone configurations, and media content sources provide onlysome examples of operating environments within which functions andmethods described below may be implemented. Other operating environmentsand configurations of media playback systems, playback devices, andnetwork devices not explicitly described herein may also be applicableand suitable for implementation of the functions and methods.

As discussed above, playback modes may comprise sets of routines thatcause one or more playback devices to function in specified manners. Inparticular, the playback modes may cause user interfaces to operate in aspecific manner that causes the one or more playback devices to advancewithin a given set of routines. As discussed above, a variety ofdifferent devices and intermediary devices may perform communicationfunctions, decoding functions, execution functions, configurationfunctions, and other functions related to the routines and playbackmodes.

The description above discloses, among other things, various examplesystems, methods, apparatus, and articles of manufacture including,among other components, firmware and/or software executed on hardware.It is understood that such examples are merely illustrative and shouldnot be considered as limiting. For example, it is contemplated that anyor all of the firmware, hardware, and/or software aspects or componentscan be embodied exclusively in hardware, exclusively in software,exclusively in firmware, or in any combination of hardware, software,and/or firmware. Accordingly, the examples provided are not the onlyways) to implement such systems, methods, apparatus, and/or articles ofmanufacture.

Additionally, references herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of aninvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforegoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible,non-transitory medium such as a memory, DVD, CD, Blu-ray, and so on,storing the software and/or firmware.

What is claimed is:
 1. A playback device comprising: a communicationinterface; at least one processor; and at least one non-transitorycomputer-readable medium comprising program instructions that areexecutable by the at least one processor such that the playback deviceis configured to: after receiving a playback mode indication, cause theplayback device to operate within a particular playback mode; afterinitiating operation of the particular playback mode, access aparticular set of routines that is associated with the particularplayback mode, wherein when executed the particular set of routines:cause the playback device to play back particular media content with aparticular user-defined acoustic parameter, and configure the playbackdevice to advance between one or more routines within the particular setof routines in response to one or more user interface interactions;receive the one or more user interface interactions at a user interfaceassociated with the playback device; and execute at least one routineselected from the particular set of routines.
 2. The playback device ofclaim 1, wherein the user interface associated within the playbackdevice comprises one or more buttons integrated into a control surfaceof the playback device.
 3. The playback device of claim 2, wherein theat least one non-transitory computer-readable medium further comprisesprogram instructions that are executable by the at least one processorsuch that the playback device is configured to: after receiving anindication that at least one of the one or more buttons has beenselected, advance to a particular routine of the particular set ofroutines; and after advancing to the particular routine, cause playbackof media content.
 4. The playback device of claim 1, wherein the userinterface of the playback device comprises a voice user interface. 5.The playback device of claim 1, wherein the program instructions thatare executable by the at least one processor such that the playbackdevice is configured to receive a playback mode indication comprisesprogram instructions that are executable by the at least one processorsuch that the playback device is configured to determine that a triggercondition has occurred, wherein the trigger condition is associate withthe playback mode indication.
 6. The playback device of claim 5, whereinthe trigger condition comprises a particular time.
 7. The playbackdevice of claim 1, wherein the particular set of routines comprise atleast one routine that is configured to communicate to a third-partydevice.
 8. The playback device of claim 1, wherein the at least onenon-transitory computer-readable medium further comprises programinstructions that are executable by the at least one processor such thatthe playback device is configured to: after receiving a playback modeindication, cause one or more playback devices within a predefined groupto operate within the particular playback mode that is selected from aplurality of playback modes.
 9. The playback device of claim 8, whereinthe particular set of routines cause a first playback device of the oneor more playback devices to play media content in a different mannerthan a second playback device of the one or more playback devices. 10.The playback device of claim 1, wherein executing the at least oneroutine selected from the particular set of routines comprises executingthe particular set of routines at a remote server and receivinginstructions from the remote server based upon the particular set ofroutines.
 11. A computer-implemented method for causing a playbackdevice to operate within a particular playback mode, thecomputer-implemented method executed by a processor at the playbackdevice, the computer-implemented method comprising: after receiving aplayback mode indication, causing the playback device to operate withina particular playback mode; after initiating operation of the particularplayback mode, accessing a particular set of routines that is associatedwith the particular playback mode, wherein when executed the particularset of routines: cause the playback device to play back particular mediacontent with a particular user-defined acoustic parameter, and configurethe playback device to advance between one or more routines within theparticular set of routines in response to one or more user interfaceinteractions; receiving the one or more user interface interactions at auser interface associated with the playback device; and executing atleast one routine selected from the particular set of routines.
 12. Thecomputer-implemented method of claim 11, wherein the user interfaceassociated within the playback device comprises one or more buttonsintegrated into a control surface of the playback device.
 13. Thecomputer-implemented method of claim 12, further comprising: afterreceiving an indication that at least one of the one or more buttons hasbeen selected, advancing to a particular routine of the particular setof routines; and after advancing to the particular routine, causingplayback of media content.
 14. The computer-implemented method of claim11, wherein the user interface of the playback device comprises a voiceuser interface.
 15. The computer-implemented method of claim 11, whereinreceiving a playback mode indication further comprises determining thata trigger condition has occurred, wherein the trigger condition isassociate with the playback mode indication.
 16. Thecomputer-implemented method of claim 15, wherein the trigger conditioncomprises a particular time.
 17. The computer-implemented method ofclaim 11, wherein the particular set of routines comprise at least oneroutine that is configured to communicate to a third-party device. 18.The computer-implemented method of claim 11, further comprising: afterreceiving a playback mode indication, causing one or more playbackdevices within a predefined group to operate within the particularplayback mode that is selected from a plurality of playback modes. 19.The computer-implemented method of claim 18, wherein the particular setof routines cause a first playback device of the one or more playbackdevices to play media content in a different manner than a secondplayback device of the one or more playback devices.
 20. Anon-transitory computer-readable storage media having stored thereoncomputer-executable instructions that, when executed at a processor of aplayback device, cause the playback device to: after receiving aplayback mode indication, cause the playback device to operate within aparticular playback mode; after initiating operation of the particularplayback mode, access a particular set of routines that is associatedwith the particular playback mode, wherein when executed the particularset of routines: cause the playback device to play back particular mediacontent with a particular user-defined acoustic parameter, and configurethe playback device to advance between one or more routines within theparticular set of routines in response to one or more user interfaceinteractions; receive the one or more user interface interactions at auser interface associated with the playback device; and execute at leastone routine selected from the particular set of routines.